MySQL – daty

Porównywanie dat

 SELECT * FROM president WHERE birth >= '1970-01-01' AND birth < '1980-01-01';

 SELECT * FROM president WHERE YEAR(deth) = 1980 AND MONTH(birth) = 3 AND DAYOFMONTH(birth) = 29;
# SELECT * FROM president 
WHERE MONTH(birth) = MONTH( CURDATE()) AND DAYOFMONTH(birth) = DAYOFMONTH( CURDATE());

TIMESTAMPDIFF – różnica między datami wyrażona w latach (YEAR)

 # SELECT name, birth, death, TIMESTAMPDIFF( YEAR, birth, death) AS age
   FROM president WHERE death IS NOT NULL

TO_DAYS() konwertuje datę na liczbę dni

# SELECT * FROM member WHERE ( TO_DAYS(expiration) - TO_DAYS( CURDATE()) ) < 60;

lub ... WHERE TIMESTAMPDIFF( DAY, CURDATE(), expiration) < 60;

Obliczenie daty na podstawie innej daty

 SELECT DATE_ADD('1970-1-1', INTERVAL 10 YEAR);     // 1980-01-01

 SELECT DATE_SUB('1970-1-1', INTERVAL 10 YEAR);     // 1960-01-01

Dodaj komentarz