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' );