V tomto návode sa dozvieme o niektorých dôležitých funkciách dátumu, ktoré sú vstavané v SQL.
Dátumové funkcie v SQL:
- TERAZ()
- CURDATE()
- CURTIME()
- DÁTUM()
- EXTRACT()
- DATE_ADD()
- DATE_SUB()
- DATEDIFF()
- FORMÁT DÁTUMU()
Pozrime sa na každú z dátumových funkcií jednu po druhej podrobne pomocou príkladov. V príkladoch na písanie dopytov budeme používať databázu MySQL.
Uvažujme, že máme tabuľku študentov s nasledujúcimi údajmi:
ID | názov | DateTime_Birth | Mesto |
---|---|---|---|
1 | Mansi Shah | 2010-01-01 18:39:09 | Pune |
2 | Tejal Wagh | 2010-03-04 05:13:19 | Nasik |
3 | Sejal Kumari | 2010-05-01 10:31:07 | Bombaj |
4 | Sonal Jain | 2010-09-09 17:17:07 | Shimla |
5 | Surili Maheshwari | 2010-07-10 20:45:18 | List |
Túto tabuľku použijeme v niektorých príkladoch.
1. TERAZ():
Funkcia NOW () v SQL poskytne aktuálny systémový dátum a čas.
Syntax:
SELECT NOW ();
Príklad:
Napíšte dotaz na zobrazenie dátumu a času aktuálneho systému.
Dopyt:
mysql> SELECT NOW () AS Current_Date_Time;
Tu sme napísali dotaz SELECT s funkciou NOW (), aby sme získali aktuálny dátum a čas systému. Current_Date_Time je alias na uloženie dátumu a času.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
Aktuálny_dátum_čas |
---|
24. 10. 2021 18:28:44 |
Dátum a čas, kedy bol dotaz vykonaný v systéme, je 24thoktóbra 2021 a 18:28:44. Preto sa zobrazuje ako výstup.
2. CURDATE()
Funkcia CURDATE () v SQL poskytne aktuálny systémový dátum.
mapa v strojopise
Syntax:
SELECT CURDATE ();
Príklad:
Napíšte dotaz na zobrazenie aktuálneho dátumu systému.
Dopyt:
mysql> SELECT CURDATE () AS CurrentDate;
Tu sme napísali dotaz SELECT s funkciou CURDATE (), aby sme získali aktuálny dátum systému. CurrentDate je alias na uloženie dátumu.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
Aktuálny dátum |
---|
2021-10-24 |
Dátum vykonania dotazu v systéme je 24thoktóbra 2021. Preto sa zobrazuje ako výstup.
3. CURTIME()
Funkcia CURTIME () v SQL poskytne aktuálny systémový čas.
Syntax:
SELECT CURTIME ();
Príklad:
Napíšte dotaz na zobrazenie aktuálneho času systému.
Dopyt:
mysql> SELECT CURTIME () AS CurrentTime;
Tu sme napísali dotaz SELECT s funkciou CURTIME (), aby sme získali aktuálny čas systému. CurrentTime je alias na ukladanie času.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
Aktuálny čas |
---|
18:49:07 |
Čas, kedy bol dopyt vykonaný v systéme, je 18:49:07. Preto sa zobrazuje ako výstup.
4. DÁTUM()
Pomocou funkcie DATE () v SQL môžete konkrétne extrahovať dátum zo stĺpca údajového typu DATETIME.
Syntax:
SELECT DATE (DateTimeValue);
Príklad 1:
Napíšte dotaz na zobrazenie dátumu od daného dátumu a času, t.j. 2021-10-24 18:28:44.
Dopyt:
mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE;
Tu sme napísali dotaz SELECT s funkciou DATE (), aby sme získali iba dátum z parametra dátumu a času odovzdaného funkcii DATE (). SHOW_DATE je alias na uloženie dátumu.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
SHOW_DATE |
---|
2021-10-24 |
Z parametra dátumu a času, t. j. „2021-10-24 18:28:44“, je hodnota dátumu 2021-10-24. Preto sa zobrazuje ako výstup.
Príklad 2:
Napíšte dotaz na zobrazenie všetkých podrobností z tabuľky študentov s dátumom zo stĺpca DateTime_Birth tabuľky študentov.
Dopyt:
mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student;
Tu sme napísali dotaz SELECT na získanie ID a názvu. Date_of_Birth je alias pre DateTime_Birth. Použili sme Date_of_Birth s funkciou DATE () na získanie iba dátumu.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
ID | názov | Dátum narodenia | Mesto |
---|---|---|---|
1 | Mansi Shah | 2010-01-01 | Pune |
2 | Tejal Wagh | 2010-03-04 | Nasik |
3 | Sejal Kumari | 2010-05-01 | Bombaj |
4 | Sonal Jain | 2010-09-09 | Shimla |
5 | Surili Maheshwari | 2010-07-10 | List |
Všetky záznamy sú zobrazené tak, ako sú z tabuľky študentov okrem stĺpca DateTime_Birth. V stĺpci Date_of_Birth sa zobrazuje iba dátum podľa požiadavky.
5. EXTRAKT()
Pomocou funkcie EXTRACT() v SQL môžeme extrahovať konkrétnu časť dátumu a času podľa našich požiadaviek: deň, mesiac, rok, deň, hodina, minúta atď.
Syntax:
SELECT EXTRACT (PART FROM DATE / TIME);
Príklad 1:
Napíšte dotaz na zobrazenie roku od daného dátumu, t.j. 24thoktóber 2021.
hrithik roshan
Dopyt:
mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR;
Tu sme napísali SELECT dotaz s funkciou EXTRACT (), aby sme získali rok od daného dátumu. SHOW_YEAR je alias na uloženie roku.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
SHOW_YEAR |
---|
2021 |
„2021“ je rok v danom dátume. Preto sa zobrazuje ako výstup.
Príklad 2:
Napíšte dotaz na zobrazenie mesiaca od daného dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH;
Tu sme napísali SELECT dotaz s funkciou EXTRACT () na získanie mesiaca od daného dátumu. SHOW_MONTH je alias na uloženie mesiaca.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
SHOW_MONTH |
---|
10 |
10thje mesačná hodnota v danom dátume. Preto sa zobrazuje ako výstup.
Príklad 3:
Napíšte dotaz na zobrazenie dňa od daného dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY;
Tu sme napísali SELECT dotaz s funkciou EXTRACT () na získanie dňa z daného dátumu. SHOW_DAY je alias na uloženie dňa.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
SHOW_DAY |
---|
24 |
24thje hodnota dňa v danom dátume. Preto sa zobrazuje ako výstup.
Príklad 4:
Napíšte dotaz na zobrazenie hodiny od daného času, t.j. 19:10:43.
Dopyt:
mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR;
Tu sme napísali SELECT dotaz s funkciou EXTRACT (), aby sme získali hodinu z daného času. SHOW_HOUR je alias na uloženie hodnoty hodiny.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
SHOW_HOUR |
---|
19 |
'19' je hodinová hodnota v danom čase. Preto sa zobrazuje ako výstup.
Príklad 5:
Napíšte dotaz na zobrazenie minúty od daného času, t.j. 19:10:43.
Dopyt:
mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE;
Tu sme napísali dotaz SELECT s funkciou EXTRACT (), aby sme získali minútovú hodnotu z daného času. SHOW_MINUTE je alias na uloženie minúty.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
SHOW_MINUTE |
---|
10 |
„10“ je minútová hodnota v danom čase. Preto sa zobrazuje ako výstup.
Príklad 6:
Napíšte dotaz na zobrazenie sekúnd od daného času, t. j. 19:10:43.
Dopyt:
mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND;
Tu sme napísali dotaz SELECT s funkciou EXTRACT (), aby sme získali hodnotu sekúnd z daného času. SHOW_SECOND je alias na uloženie hodnoty sekundy.
Po vykonaní vyššie uvedeného dotazu sme dostali nasledujúci výstup:
SHOW_SECOND |
---|
43 |
43 je druhá hodnota v danom čase. Preto sa zobrazuje ako výstup.
6. DATE_ADD()
Pomocou funkcie DATE_ADD () v SQL môžeme k danému dátumu pridať konkrétny časový interval.
príkaz javascript if
Syntax:
SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added);
Príklad 1:
Napíšte dotaz na pridanie intervalu 15 dní k danému dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Tu sme napísali SELECT dotaz s funkciou DATE_ADD () na pridanie intervalu 15 dní k danému dátumu. NEW_DATE je alias na uloženie hodnoty nového dátumu.
Dostanete nasledujúci výstup:
NEW_DATE |
---|
8. 11. 2021 |
Po pridaní 15-dňového intervalu k 24. 10. 2021 je nový dátum 8. 11. 2021.
Príklad 2:
Napíšte dotaz na pridanie intervalu 5 mesiacov k danému dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Tu sme napísali SELECT dotaz s funkciou DATE_ADD () na pridanie intervalu 5 mesiacov k danému dátumu. NEW_DATE je alias na uloženie hodnoty nového dátumu.
Dostanete nasledujúci výstup:
NEW_DATE |
---|
2022-03-24 |
Po pridaní 5-mesačného intervalu k 24. 10. 2021 je nový dátum 24. 3. 2022.
Príklad 3:
Napíšte dotaz na pridanie intervalu 25 rokov k danému dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Tu sme napísali dotaz SELECT s funkciou DATE_ADD () na pridanie intervalu 25 rokov k danému dátumu. NEW_DATE je alias na uloženie hodnoty nového dátumu.
Získate nasledujúci výstup:
reťazcové metódy java
NEW_DATE |
---|
2046-10-24 |
Po pridaní 25-ročného intervalu k 24. 10. 2021 je nový dátum 24. 10. 2046.
7. DATE_SUB()
Pomocou funkcie DATE_SUB () v SQL vieme odstrániť konkrétny časový interval z daného dátumu.
Syntax:
SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted);
Príklad 1:
Napíšte dotaz na odstránenie intervalu 25 rokov od daného dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Tu sme napísali SELECT dotaz s funkciou DATE_SUB() na odstránenie intervalu 25 rokov od daného dátumu. NEW_DATE je alias na uloženie hodnoty nového dátumu.
Dostanete nasledujúci výstup:
NEW_DATE |
---|
1996-10-24 |
Po odstránení 25-ročného intervalu z 24. 10. 2021 je nový dátum 24. 10. 1996.
Príklad 2:
Napíšte dotaz na odstránenie intervalu 5 mesiacov od daného dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Tu sme napísali SELECT dotaz s funkciou DATE_SUB() na odstránenie intervalu 5 mesiacov od daného dátumu. NEW_DATE je alias na uloženie hodnoty nového dátumu.
Dostanete nasledujúci výstup:
NEW_DATE |
---|
2021-05-24 |
Po odstránení 5-mesačného intervalu z 24. 10. 2021 je nový dátum 24. 5. 2021.
Príklad 3:
Napíšte dotaz na odstránenie intervalu 15 dní od daného dátumu, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Tu sme napísali SELECT dotaz s funkciou DATE_SUB() na odstránenie intervalu 15 dní od daného dátumu. NEW_DATE je alias na uloženie hodnoty nového dátumu.
Dostanete nasledujúci výstup:
NEW_DATE |
---|
2021-10-09 |
Po odstránení 15-dňového intervalu z 24. 10. 2021 je nový dátum 9. 10. 2021.
8. DATEDIFF()
Použitie funkcie DATEDIFF() v SQL nám dá počet dní, ktoré spadajú medzi dva dané dátumy.
Syntax:
SELECT DATEDIFF(Date1, Date2);
Príklad 1:
Napíšte dotaz na výpočet rozdielu medzi dvoma danými dátumami, t. j. 24thoktóbra 2021 a 9thoktóber 2021.
Dopyt:
mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE;
Tu sme napísali SELECT dotaz s funkciou DATE_DIFF(), aby sme získali rozdiel medzi dátumami 2021-10-24 a 2021-10-09. Number_of_Days je alias na uloženie rozdielu v počte dní.
Získate nasledujúci výstup:
Počet dní |
---|
pätnásť |
Medzi dátumami 2021-10-24 a 2021-10-09 je rozdiel 15 dní.
Príklad 2:
Napíšte dotaz na výpočet rozdielu medzi dvoma danými dátumami, t.j. 5thmáj 2018 a 5thmáj 2008.
Dopyt:
mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE;
Tu sme napísali dotaz SELECT s funkciou DATE_DIFF (), aby sme získali rozdiel medzi dátumami 2018-05-05 a 2008-05-05. Number_of_Days je alias na uloženie rozdielu v počte dní.
Dostanete nasledujúci výstup:
Počet dní |
---|
3652 |
Medzi dátumami 2018-05-05 a 2008-05-05 je rozdiel 3652 dní.
9. DATE_FORMAT()
Pomocou funkcie DATE_FORMAT () v SQL môžeme zobraziť informácie súvisiace s dátumom alebo časom v správnom formáte.
Syntax použitia funkcie DATE_FORMAT v stĺpci tabuľky:
SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name;
ALEBO
Syntax na formátovanie konkrétneho dátumu:
SELECT DATE_FORMAT (Date, Expression);
Príklad 1:
Napíšte dotaz na zobrazenie daného dátumu v správnom formáte, t.j. 24thoktóber 2021.
Dopyt:
mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date;
Tu sme napísali SELECT dotaz s funkciou DATE_FORMAT (), aby sme získali dátum 2021-10-24 vo formáte. Formatted_Date je alias na uloženie naformátovaného dátumu.
pytón ťavej
Dostanete nasledujúci výstup:
Formátovaný_dátum |
---|
Nedeľa 24. októbra 2021 |
Nedeľa 24. októbra 2021 je formátovaný dátum pre 24. 10. 2021.
Príklad 2:
Napíšte dotaz na zobrazenie daného dátumu a času v správnom formáte, t.j. 24thoktóber 2021 22:30:17.
Dopyt:
mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime;
Tu sme napísali SELECT dotaz s funkciou DATE_FORMAT () na získanie dátumu a času '2021-10-24 22:30:17' vo formáte. Formatted_DateTime je alias na uloženie naformátovaného dátumu a času.
Dostanete nasledujúci výstup:
Formatted_DateTime |
---|
Nedeľa 24. októbra 2021 o 22:30:17 |
Nedeľa 24. októbra 2021 22:30:17 je formátovaný dátum a čas pre 24. 10. 2021 22:30:17.
Príklad 3:
Napíšte dotaz na zobrazenie všetkých podrobností zo stĺpca študent so stĺpcom DateTime_Birth v dobre naformátovanom formáte.
Dopyt:
mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student;
Tu sme napísali dotaz SELECT s funkciou DATE_FORMAT (), aby sme získali dátum a čas pre všetky záznamy vo formáte. Formatted_DateTime je alias na uloženie naformátovaného dátumu a času.
Dostanete nasledujúci výstup:
ID | názov | Formatted_DateTime | Mesto |
---|---|---|---|
1 | Mansi Shah | Piatok 1. januára 2010 18:39:09 | Pune |
2 | Tejal Wagh | Štvrtok 4. marca 2010 05:13:19 | Nasik |
3 | Sejal Kumari | Sobota 1. mája 2010 10:31:07 | Bombaj |
4 | Sonal Jain | Štvrtok 9. septembra 2010 17:17:07 | Shimla |
5 | Surili Maheshwari | Sobota 10. júla 2010 20:45:18 | List |
Všetky záznamy sú zobrazené tak, ako sú z tabuľky študentov okrem stĺpca DateTime_Birth. V stĺpci Formatted_DateTime sa podľa potreby zobrazuje iba dátum a čas.