Mysql - Odejmowanie daty i czasu w formacie timestamp

Mysql'owy timestamp jest odpowiednikiem unix time (POSIX time, Epoch time). Unix time jest to czas mierzony w sekundach od 1970 roku UTC. Gdzie rok 1970 uznaje się za początek epoki UNIX'a, można powiedzieć również że Lonux'a. Chodź Linux to inny system ale powstał na bazie UNIX'a.

Wracając do MySql'a, aby odjąć datę od teraz należy użyć funkcji: DATE_SUB(). Aby zamienić ją na timestamp, należy użyć funkcji UNIX_TIMESTAMP
DATE_SUB(obecna_data, wyrażenie).
UNIX_TIMESTAMP(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 czyli 1410437296

Odejmowanie 1 minuty od dzisiejszej daty
SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MINUTE));
>1410437236

Odejmowanie 1 godziny od dzisiejszej daty
SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 HOUR));
>1410433696

Odejmowanie 7 dni od dzisiejszej daty
SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 day));
>1409832496

Odejmowanie pół roku (6 miesięcy) od dzisiejszej daty
SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 6 MONTH));
>1394543296

Więcej szczegółów na temat funkcji DATE_SUB

Dział: