Mysql - Odejmowanie daty i czasu

Bardzo często musimy wykonać zapytanie SQL, w którym chcielibyśmy użyć daty przeszłej. Na przykład potrzebujemy usunąć wszystkie rekordy starsze niż 7 dni. Wtedy przykładowo codziennie o godzinie 01:30 (cron), odpalamy skrypt (bash z zapytaniem SQL) z zapytaniem SQL.

Aby odjąć datę od teraz należy użyć funkcji:
DATE_SUB().

DATE_SUB(obecna_data, wyrażenie).

Na przykład:
Data wejściowa według której będą robione wyliczenia to: 2014-09-11 14:08:16

Odejmowanie 1 minuty od dzisiejszej daty
SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE);
>2014-09-11 14:07:16

Odejmowanie 1 godziny od dzisiejszej daty
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);
>2014-09-11 13:08:16

Odejmowanie 7 dni od dzisiejszej daty
SELECT DATE_SUB(NOW(), INTERVAL 7 day);
>2014-09-04 14:08:16

Odejmowanie pół roku (6 miesięcy) od dzisiejszej daty
SELECT DATE_SUB(NOW(), INTERVAL 6 MONTH);
>2014-03-11 14:08:16

Tablica wyrażeń, według której można odpowiednio modyfikować zapytanie SQL.
valueexpr
MICROSECONDMICROSECONDS
SECONDSECONDS
MINUTEMINUTES
HOURHOURS
DAYDAYS
WEEKWEEKS
MONTHMONTHS
QUARTERQUARTERS
YEARYEARS
SECOND_MICROSECOND'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND'MINUTES:SECONDS'
HOUR_MICROSECOND'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND'HOURS:MINUTES:SECONDS'
HOUR_MINUTE'HOURS:MINUTES'
DAY_MICROSECOND'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE'DAYS HOURS:MINUTES'
DAY_HOUR'DAYS HOURS'
YEAR_MONTH'YEARS-MONTHS'

Mysql - Odejmowanie daty i czasu w formacie timestamp

Dział: