Funkcie pre prácu s dátumom a časom

Veľmi často potrebujeme v databázach uchovávať aj údaje o čase a dátume. Tieto zaznamenávajú rôzne udalosti v konkrétnom okamihu. Ako príklad môže byť, keď sa prijíma do zamestnania k určitému dátumu. Preto si ukážeme zopár funkcií dátumu a času.

CURDATE() – vráti aktuálny dátum vo formáte RRRR-MM-DD
CURTIME() – vráti aktuálny čas vo formáte HH:MM:SS
NOW(), SYSDATE(), TIME_STAMP – vráti dátum a čas vo formáte RRRR-MM-DD HH:MM:SS
DATE_ADD(datum, INTERVAL vyraz typ) – pripočíta k dátumu špecifikovanú hodnotu
EXTRACT(typ FROM datum) – vyberie časť dátumu (sekundy – SECOND, dni – DAY, mesiac – MONTH, ...)
YEAR(datum) – vráti rok zo zadaného dátumu
YEARWEEK(datum) – vráti rok a dvojciferné číslo týždňa v roku
QUARTER(datum) – vráti číslo kvartálu v roku (1 – 4)
MONTHNAME(datum) – vráti názov mesiaca v angličtine
DAYOFWEEK(datum) – vráti poradové číslo dňa v týždni (1 – nedeľa, ..., 7 – sobota)
DAYNAME(datum) – vráti názov dňa v týždni v angličtine
WEEKDAY(datum) – vráti poradové číslo dňa v týždni (0 – pondelok, ..., 6 – nedeľa)
WEEK(datum, 1) – vráti poradové číslo týždna v roku
HOUR(cas) – vráti hodnotu hodín zo zadaného času
MINUTE(cas) – vráti hodnotu minút zo zadaného času
SECOND(cas) – vráti hodnotu sekúnd zo zadaného času
SEC_TO_TIME(pocet_sekund) – prevedie počet sekúnd od polnoci na čas v tvare HH:MM:SS
TIME_TO_SEC(cas) – prevedie zadaný čas na počet sekúnd po polnoci
TO_DAYS(datum) – vráti počet dní od počiatku nášho letopočtu

DATE_FORMAT(datum,format) – prevedie zadaný čas na počet sekúnd po polnoci

%Y rok RRRR (pr. 2003, 1999 ...)
%y rok RR (pr. 03, 99 ...)
%m mesiac MM (pr. 01, 06, 12 ...)
%c mesiac M alebo MM (pr. 1, 6, 12 ...)
%M názov mesiaca (pr. January ...)
%b názov mesiaca skrátene (pr. Jan, Feb ...)
%u číslo týždňa v roku - %D - deň rádovou číslovkou (pr. 1st, 2nd ...)
%d deň v mesiaci DD (pr. 01, 02, 31 ...)
%e deň v mesiaci D alebo DD (pr. 1, 2, 31 ...)
%w číslo dňa v týždni D (pr. 0, 6 ...)
%W názov dňa v týždni (pr. Sunday ...)
%a názov dňa v týždni skrátene (pr. Sun, Mon ...)
%j číslo dňa v roku DDD (pr. 000, 006, 366 ...)
%H hodina HH (pr. 00, 06, 23 ...)
%k hodina H alebo HH (pr. 0, 6, 23 ...)
%h hodina HH len do 12 (pr. 01, 06, 12 ...)
%l hodina H alebo HH len do 12 (pr. 1, 6, 12 ...)
%i minúty MM (pr. 01, 06, 59 ...)
%s sekundy SS (pr. 01, 06, 59 ...)
%P dĺžka cyklu - poldňové alebo celodenné(pr. AM, PM)


Príklad:

SELECT DATE_FORMAT(NOW(),"%w.%e.%y"); //Vypíše: 5.23.07