Funkcje daty i czasu w mySQL – Kurs języka SQL
1. Aktualna data i czas
CURDATE() – funkcja zwracająca aktualną datę w formacie YYYY-MM-DD, np: 2016-04-05
SELECT CURDATE();
UTC_DATE() – funkcja zwracająca aktualną datę UTC w formacie YYYY-MM-DD, np: 2016-04-05
SELECT UTC_DATE();
CURTIME() – funkcja zwracająca aktualny czas w formacie HH:MM:SS, np: 09:06:34
SELECT CURTIME();
UTC_TIME() – funkcja zwracająca aktualny czas UTC (-2 godziny)w formacie HH:MM:SS, np: 07:06:34
SELECT UTC_TIME();
NOW() – funkcja zwraca bieżącą datę oraz godzinę, np: 2016-04-05 09:06:34
SELECT NOW();
SYSDATE() – funkcja zwraca bieżącą datę oraz godzinę systemową, np: 2016-04-05 09:06:34
SELECT SYSDATE();
UNIX_TIMESTAMP() – funkcja zwraca bieżącą datę oraz godzinę systemową, np: 2016-04-05 09:06:34
SELECT UNIX_TIMESTAMP();
UTC_TIMESTAMP() – funkcja zwraca bieżącą datę UTC oraz godzinę UTC (-2 godziny), np: 2016-04-05 07:06:34
SELECT UTC_TIMESTAMP();
2. Obcinanie daty
YEAR() – funkcja zwraca rok dla podanej daty, np: 2016
SELECT YEAR('2016-04-05');
MONTH() – funkcja zwraca miesiąc dla podanej daty, np: 4
SELECT MONTH('2016-04-05');
DAY() – funkcja zwraca dzień dla podanej daty, np: 5
SELECT DAY('2016-04-05');
3. Obcinanie godziny
HOUR() – funkcja zwraca godzinę od podanego czasu, np: 9
SELECT HOUR('09:06:34');
MINUTE() – funkcja zwraca minuty od podanego czasu, np: 6
SELECT MINUTE('09:06:34');
SECOND() – funkcja zwraca sekundy od podanego czasu, np: 34
SELECT SECOND('09:06:34');
4. Operacje na datach i czasie
DATE_FORMAT() – funkcja formatuje podaną datę do określonego formatu, np: 05.04.2016 (więcej na temat funkcji DATE_FORMAT() znajdziesz w osobnym wpisie)
SELECT DATE_FORMAT('2016-04-05', '%d.%m.%Y');
QUARTER() – funkcja zwraca numer kwartału dla podanej daty, np: 2
SELECT QUARTER('2016-04-05');
DAYOFYEAR() – funkcja zwraca dzień w roku, np. dzień 2016-04-05 to 96 dzień w roku 2016
SELECT DAYOFYEAR('2016-04-05');
DAYOFWEEK() – funkcja zwraca numer dnia tygodnia, np: 3
SELECT DAYOFWEEK('2016-04-05');
DAYOFMONTH() – funkcja zwraca numer dzień miesiąca, np: 5
SELECT DAYOFMONTH('2016-04-05');
MONTHNAME – funkcja zwraca nazwę miesiąca dla podanej daty, np: April
SELECT MONTHNAME('2016-04-05');
DAYNAME() – funkcja zwraca nazwę dnia tygodnia dla podanej daty, np: Tuesday
SELECT DAYNAME('2016-04-05');
WEEK() – funkcja zwraca numer dnia tygodnia dla podanej daty, np: 14
SELECT WEEK('2016-04-05');
WEEKOFYEAR() – funkcja zwraca numer dnia tygodnia dla podanej daty, np: 14
SELECT WEEKOFYEAR('2016-04-05');
WEEKDAY() – funkcja zwraca numer dnia tygodnia, np: 1 gdzie: 0 – poniedziałek, 1 – wtorek, 2 – środa, 3 – czwartek 4 – piątek, 5 – sobota, 6 – niedziela
SELECT WEEKDAY('2016-04-05');
LAST_DAY – funkcja zwraca ostatni dzień miesiąca dla podanej daty, np: 2016-04-30
SELECT LAST_DAY('2016-04-05');
TO_DAYS() – funkcja zwraca ilość dni od roku “0”, (0000-01-01), np: 736424
SELECT TO_DAYS('2016-04-05');
FROM_DAYS() – funkcja odwrotna do powyższej, zwraca datę na podstawie podanej ilości dni licząc od roku “0”, np: 2016-04-05
SELECT FROM_DAYS(736424);
DATEDIFF() – funkcja zwraca różnicę dni między dwoma datami, np: 5939 (liczba dni od 2001-01-01 do 2016-04-05)
SELECT DATEDIFF('2016-04-05','2000-01-01');
TIME_TO_SEC() – liczba sekund, która upłynęła od określonej godziny, np: 32794
SELECT TIME_TO_SEC('09:06:34');
ADDDATE(), DATE_ADD() – dodawanie określonej liczby, dni, miesięcy, lat do określonej daty, np: 2016-04-14
SELECT ADDDATE('2016-04-04', INTERVAL 10 DAY), DATE_ADD('2016-04-04', INTERVAL 10 DAY);
SUBDATE(), DATE_SUB() – odejmowanie określonej liczby, dni, miesięcy, lat do określonej daty, np: 2016-03-25
SELECT DATE_SUB('2016-04-04', INTERVAL 10 DAY);
ADDTIME() – dodawanie daty, czasu do podanego w parametrze czasu/daty, np: 2016-04-06 10:17:45
SELECT ADDTIME('2016-04-05 09:06:34','1 1:11:11');
Powyższe zapytanie zwróci nam zatem wynik: 10:17:45
SELECT ADDTIME('09:06:34','1:11:11');
GET_FORMAT() – funkcja zwracająca format daty/czasu, np: %d.%m.%Y (więcej na temat funkcji GET_FORMAT() znajdziesz w osobnym wpisie)
SELECT GET_FORMAT(DATE,'EUR');
6. Przykłady łączenia funkcji tekstowych
1. Formatowanie daty do określonego formatu
SELECT DATE_FORMAT('2016-04-05', GET_FORMAT(DATE,'EUR'));
2. Formatowanie bierzącej daty do określonego formatu
SELECT DATE_FORMAT(CURDATE(), '%D %M %Y' );
w funkcji DAY() jest błąd – chodzi o dzień, a nie o miesiąc
DAY() – funkcja zwraca miesiąc dla podanej daty, np: 5
Bardzo przydatny materiał
Pozdrawiam
Dziękuję za uwagę. Ma Pani rację, poprawiłem błąd.