V tomto tutoriálu se seznámíme s některými důležitými funkcemi data, které jsou vestavěny v SQL.
Funkce data v SQL:
- NYNÍ()
- AKTUÁLNÍ()
- CURTIME()
- DATUM()
- VÝPIS()
- DATE_ADD()
- DATE_SUB()
- DATEDIFF()
- DATOVÝ FORMÁT()
Podívejme se podrobně na jednotlivé funkce data pomocí příkladů. V příkladech pro psaní dotazů budeme používat databázi MySQL.
Předpokládejme, že máme tabulku studentů s následujícími údaji:
ID | název | DateTime_Birth | Město |
---|---|---|---|
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 | Dopis |
Tuto tabulku budeme používat v některých příkladech.
1. TEĎ():
Funkce NOW () v SQL poskytne aktuální datum a čas systému.
Syntax:
SELECT NOW ();
Příklad:
Napište dotaz pro zobrazení aktuálního data a času systému.
Dotaz:
mysql> SELECT NOW () AS Current_Date_Time;
Zde jsme napsali SELECT dotaz s funkcí NOW (), abychom získali aktuální datum a čas systému. Current_Date_Time je alias pro uložení data a času.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
Aktuální_datum_čas |
---|
24. 10. 2021 18:28:44 |
Datum a čas, kdy byl dotaz v systému proveden, je 24čtříjna 2021 a 18:28:44. Proto se zobrazí jako výstup.
2. CURDATE()
Funkce CURDATE () v SQL poskytne aktuální datum systému.
bash if podmínka
Syntax:
SELECT CURDATE ();
Příklad:
Napište dotaz pro zobrazení aktuálního data systému.
Dotaz:
mysql> SELECT CURDATE () AS CurrentDate;
Zde jsme napsali SELECT dotaz s funkcí CURDATE (), abychom získali aktuální datum systému. CurrentDate je alias pro uložení data.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
Dnešní datum |
---|
2021-10-24 |
Datum, kdy byl dotaz proveden v systému, je 24čtříjna 2021. Proto se zobrazí jako výstup.
3. CURTIME()
Funkce CURTIME () v SQL poskytne aktuální systémový čas.
Syntax:
SELECT CURTIME ();
Příklad:
Napište dotaz pro zobrazení aktuálního času systému.
Dotaz:
mysql> SELECT CURTIME () AS CurrentTime;
Zde jsme napsali SELECT dotaz s funkcí CURTIME (), abychom získali aktuální čas systému. CurrentTime je alias pro uložení času.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
Aktuální čas |
---|
18:49:07 |
Čas, kdy byl dotaz v systému proveden, je 18:49:07. Proto se zobrazí jako výstup.
4. DATUM()
Pomocí funkce DATE () v SQL můžete konkrétně extrahovat datum ze sloupce datového typu DATETIME.
Syntax:
SELECT DATE (DateTimeValue);
Příklad 1:
Napište dotaz pro zobrazení data od daného data a času, tj. 2021-10-24 18:28:44.
Dotaz:
mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE;
Zde jsme napsali dotaz SELECT s funkcí DATE (), abychom získali pouze datum z parametru datum a čas předávaného funkci DATE(). SHOW_DATE je alias pro uložení data.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
SHOW_DATE |
---|
2021-10-24 |
Z parametru datum a čas, tj. '2021-10-24 18:28:44', je hodnota data 2021-10-24. Proto se zobrazí jako výstup.
Příklad 2:
Napište dotaz pro zobrazení všech podrobností z tabulky studentů s datem ze sloupce DateTime_Birth tabulky studentů.
Dotaz:
víceřádkový komentář powershell
mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student;
Zde jsme napsali SELECT dotaz pro načtení ID a jména. Date_of_Birth je alias pro DateTime_Birth. Použili jsme Date_of_Birth s funkcí DATE () k získání pouze data.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
ID | název | Datum narození | Město |
---|---|---|---|
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 | Dopis |
Všechny záznamy jsou zobrazeny tak, jak jsou z tabulky studentů, kromě sloupce DateTime_Birth. Ve sloupci Date_of_Birth je zobrazeno pouze datum podle požadavku.
5. EXTRAKT()
Pomocí funkce EXTRACT() v SQL můžeme extrahovat konkrétní část data a času podle našich požadavků: den, měsíc, rok, den, hodina, minuta atd.
Syntax:
SELECT EXTRACT (PART FROM DATE / TIME);
Příklad 1:
Napište dotaz pro zobrazení roku od daného data, tedy 24čtříjna 2021.
Dotaz:
mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR;
Zde jsme napsali SELECT dotaz s funkcí EXTRACT (), abychom získali rok od daného data. SHOW_YEAR je alias pro uložení roku.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
SHOW_YEAR |
---|
2021 |
'2021' je rok v daném datu. Proto se zobrazí jako výstup.
Příklad 2:
Napište dotaz pro zobrazení měsíce od daného data, tedy 24čtříjna 2021.
Dotaz:
mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH;
Zde jsme napsali SELECT dotaz s funkcí EXTRACT () pro získání měsíce od daného data. SHOW_MONTH je alias pro uložení měsíce.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
SHOW_MONTH |
---|
10 |
10čtje hodnota měsíce v daném datu. Proto se zobrazí jako výstup.
Příklad 3:
Napište dotaz pro zobrazení dne od daného data, tedy 24čtříjna 2021.
Dotaz:
mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY;
Zde jsme napsali SELECT dotaz s funkcí EXTRACT (), abychom získali den z daného data. SHOW_DAY je alias pro uložení dne.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
SHOW_DAY |
---|
24 |
24čtje hodnota dne v daném datu. Proto se zobrazí jako výstup.
Příklad 4:
Napište dotaz pro zobrazení hodiny od daného času, tj. 19:10:43.
Dotaz:
mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR;
Zde jsme napsali SELECT dotaz s funkcí EXTRACT (), abychom získali hodinu z daného času. SHOW_HOUR je alias pro uložení hodnoty hodiny.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
SHOW_HOUR |
---|
19 |
'19' je hodinová hodnota v daném čase. Proto se zobrazí jako výstup.
Příklad 5:
Napište dotaz pro zobrazení minuty z daného času, tj. 19:10:43.
Dotaz:
mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE;
Zde jsme napsali SELECT dotaz s funkcí EXTRACT (), abychom získali minutovou hodnotu z daného času. SHOW_MINUTE je alias pro uložení minut.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
SHOW_MINUTE |
---|
10 |
'10' je minutová hodnota v daném čase. Proto se zobrazí jako výstup.
Příklad 6:
Napište dotaz pro zobrazení sekund z daného času, tj. 19:10:43.
Dotaz:
mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND;
Zde jsme napsali SELECT dotaz s funkcí EXTRACT (), abychom získali hodnotu sekund z daného času. SHOW_SECOND je alias pro uložení hodnoty sekundy.
Po provedení výše uvedeného dotazu jsme dostali následující výstup:
SHOW_SECOND |
---|
43 |
43 je druhá hodnota v daném čase. Proto se zobrazí jako výstup.
6. DATE_ADD()
Pomocí funkce DATE_ADD () v SQL můžeme k danému datu přidat konkrétní časový interval.
Syntax:
SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added);
Příklad 1:
Napište dotaz pro přidání intervalu 15 dnů k danému datu, tedy 24čtříjen 2021.
Dotaz:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Zde jsme napsali SELECT dotaz s funkcí DATE_ADD () pro přidání intervalu 15 dnů k danému datu. NEW_DATE je alias pro uložení hodnoty nového data.
Získáte následující výstup:
NEW_DATE |
---|
2021-11-08 |
Po přidání 15denního intervalu k 24. 10. 2021 je novým datem 8. 11. 2021.
Příklad 2:
Napište dotaz pro přidání intervalu 5 měsíců k danému datu, tedy 24čtříjen 2021.
Dotaz:
dfs algoritmus
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Zde jsme napsali SELECT dotaz s funkcí DATE_ADD () pro přidání intervalu 5 měsíců k danému datu. NEW_DATE je alias pro uložení hodnoty nového data.
Získáte následující výstup:
NEW_DATE |
---|
2022-03-24 |
Po přidání 5měsíčního intervalu k 24. 10. 2021 je nové datum 24. 3. 2022.
Příklad 3:
Napište dotaz pro přidání intervalu 25 let k danému datu, tedy 24čtříjen 2021.
Dotaz:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Zde jsme napsali SELECT dotaz s funkcí DATE_ADD () pro přidání intervalu 25 let k danému datu. NEW_DATE je alias pro uložení hodnoty nového data.
Získáte následující výstup:
NEW_DATE |
---|
2046-10-24 |
Po přidání 25letého intervalu k 24. 10. 2021 je nové datum 24. 10. 2046.
7. DATE_SUB()
Pomocí funkce DATE_SUB () v SQL můžeme odstranit konkrétní časový interval z daného data.
Syntax:
SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted);
Příklad 1:
Napište dotaz pro odstranění intervalu 25 let od daného data, tedy 24čtříjen 2021.
Dotaz:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Zde jsme napsali SELECT dotaz s funkcí DATE_SUB() pro odstranění intervalu 25 let od daného data. NEW_DATE je alias pro uložení hodnoty nového data.
Získáte následující výstup:
NEW_DATE |
---|
1996-10-24 |
Po odstranění 25letého intervalu z 24. 10. 2021 je novým datem 24. 10. 1996.
Příklad 2:
seznam seřadit podle java
Napište dotaz na odstranění intervalu 5 měsíců od daného data, tedy 24čtříjen 2021.
Dotaz:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Zde jsme napsali SELECT dotaz s funkcí DATE_SUB() pro odstranění intervalu 5 měsíců od daného data. NEW_DATE je alias pro uložení hodnoty nového data.
Získáte následující výstup:
NEW_DATE |
---|
2021-05-24 |
Po odstranění 5měsíčního intervalu z 24. 10. 2021 je novým datem 24. 5. 2021.
Příklad 3:
Napište dotaz pro odstranění intervalu 15 dnů od daného data, tedy 24čtříjen 2021.
Dotaz:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Zde jsme napsali SELECT dotaz s funkcí DATE_SUB() pro odstranění intervalu 15 dnů od daného data. NEW_DATE je alias pro uložení hodnoty nového data.
Získáte následující výstup:
NEW_DATE |
---|
2021-10-09 |
Po odstranění 15denního intervalu z 24. 10. 2021 je novým datem 9. 10. 2021.
8. DATEDIFF()
Použití funkce DATEDIFF() v SQL nám dá počet dní, které spadají mezi dvě zadaná data.
Syntax:
SELECT DATEDIFF(Date1, Date2);
Příklad 1:
Napište dotaz pro výpočet rozdílu mezi dvěma danými daty, tj. 24čtříjna 2021 a 9čtříjen 2021.
Dotaz:
mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE;
Zde jsme napsali SELECT dotaz s funkcí DATE_DIFF(), abychom získali rozdíl mezi daty 2021-10-24 a 2021-10-09. Number_of_Days je alias pro uložení rozdílu v počtu dní.
Získáte následující výstup:
Počet dní |
---|
patnáct |
Mezi daty 2021-10-24 a 2021-10-09 je rozdíl 15 dní.
Příklad 2:
Napište dotaz pro výpočet rozdílu mezi dvěma danými daty, tj. 5čtkvětna 2018 a 5čtkvěten 2008.
Dotaz:
mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE;
Zde jsme napsali dotaz SELECT s funkcí DATE_DIFF (), abychom získali rozdíl mezi daty 2018-05-05 a 2008-05-05. Number_of_Days je alias pro uložení rozdílu v počtu dní.
Získáte následující výstup:
Počet dní |
---|
3652 |
Mezi daty 2018-05-05 a 2008-05-05 je rozdíl 3652 dní.
9. DATE_FORMAT()
Pomocí funkce DATE_FORMAT () v SQL můžeme zobrazit informace související s datem nebo časem ve správném formátu.
Syntaxe použití funkce DATE_FORMAT ve sloupci tabulky:
SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name;
NEBO
Syntaxe pro formátování konkrétního data:
SELECT DATE_FORMAT (Date, Expression);
Příklad 1:
Napište dotaz pro zobrazení daného data ve správném formátu, tedy 24čtříjen 2021.
Dotaz:
mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date;
Zde jsme napsali SELECT dotaz s funkcí DATE_FORMAT (), abychom získali datum 2021-10-24 ve formátovaném tvaru. Formatted_Date je alias pro uložení formátovaného data.
linux který příkaz
Získáte následující výstup:
Formátované_datum |
---|
Neděle 24. října 2021 |
Neděle 24. října 2021 je formátovaným datem pro 24. 10. 2021.
Příklad 2:
Napište dotaz pro zobrazení daného data a času ve správném formátu, tedy 24čtříjna 2021 22:30:17.
Dotaz:
mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime;
Zde jsme napsali dotaz SELECT s funkcí DATE_FORMAT (), abychom získali datum a čas '2021-10-24 22:30:17' ve formátovaném tvaru. Formatted_DateTime je alias pro uložení naformátovaného data a času.
Získáte následující výstup:
Formatted_DateTime |
---|
Neděle 24. října 2021 22:30:17 |
Neděle 24. října 2021 22:30:17 je formátované datum a čas pro 24. 10. 2021 22:30:17.
Příklad 3:
Napište dotaz pro zobrazení všech podrobností ze sloupce student se sloupcem DateTime_Birth ve správném formátu.
Dotaz:
mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student;
Zde jsme napsali SELECT dotaz s funkcí DATE_FORMAT (), abychom získali datum a čas pro všechny záznamy ve formátované podobě. Formatted_DateTime je alias pro uložení naformátovaného data a času.
Získáte následující výstup:
ID | název | Formatted_DateTime | Město |
---|---|---|---|
1 | Mansi Shah | Pátek 1. ledna 2010 18:39:09 | Pune |
2 | Tejal Wagh | Čtvrtek 4. března 2010 05:13:19 | Nasik |
3 | Sejal Kumari | Sobota 1. května 2010 10:31:07 | Bombaj |
4 | Sonal Jain | Čtvrtek 9. září 2010 17:17:07 | Shimla |
5 | Surili Maheshwari | Sobota 10. července 2010 20:45:18 | Dopis |
Všechny záznamy jsou zobrazeny tak, jak jsou z tabulky studentů, kromě sloupce DateTime_Birth. Ve sloupci Formatted_DateTime se podle potřeby zobrazí pouze datum a čas.