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
Odejmowanie 1 godziny od dzisiejszej daty
Odejmowanie 7 dni od dzisiejszej daty
Odejmowanie pół roku (6 miesięcy) od dzisiejszej daty
Tablica wyrażeń, według której można odpowiednio modyfikować zapytanie SQL.
Mysql - Odejmowanie daty i czasu w formacie timestamp
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.
value | expr |
---|---|
MICROSECOND | MICROSECONDS |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
WEEK | WEEKS |
MONTH | MONTHS |
QUARTER | QUARTERS |
YEAR | YEARS |
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ł: