Here's how long various drugs stay in your body
Contrary to what many advertised drug tests might promise, not all substances leave their telltale chemical signature in the body for the same amount of time.
The moment we take a drug - whether we snort, smoke, or swallow it - our bodies begin to break it down. In the process, metabolites, or byproducts, of the drug are produced, which can linger in our blood, urine (and even in our hair) for long after the initial effects of the drug are felt. Traces of these metabolites are what drug testers look for, since they're a good indication that someone has actually used a drug rather than merely come into accidental contact with it.
And while hair-based drug tests are fairly accurate, tests of blood and urine are simply unable to detect the vast majority of drugs, so long as you haven't used for about a week. Heroin, for example, is generally undetectable in urine after three to five days.
As the chart below shows, traces of drugs like LSD, morphine, heroin, amphetamines, and alcohol all remain in the blood for just 12 hours or less:
For urine, the window of detectibility is a little bit wider - roughly three to six days for LSD, MDMA, and morphine, for example - and up to 30 days for marijuana:
Hair-based drug tests are the most accurate, as the chart below shows, since traces of everything from alcohol to morphine can remain in the follicle for up to 90 days: