MySQL get the date n days ago as a timestamp

Ben Noland picture Ben Noland · Jul 8, 2009 · Viewed 89.8k times · Source

In MySQL, how would I get a timestamp from, say 30 days ago?

Something like:

select now() - 30

The result should return a timestamp.

Answer

Justin Giboney picture Justin Giboney · Jul 8, 2009

DATE_SUB will do part of it depending on what you want

mysql> SELECT DATE_SUB(NOW(), INTERVAL 30 day);
2009-06-07 21:55:09

mysql> SELECT TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
2009-06-07 21:55:09

mysql> SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
1244433347