According to a 2017 review study, cannabis can stay in urine for 5 to 7 days after the last day of use for moderate users. For heavy users, cannabis can be detected in urine for up to 30 days after use. The length of time cannabis stays in the body also depends on other factors such as a person's body fat, drug testing method, and the frequency and dosage of the drug.