W tym poradniku dowiemy się o niektórych ważnych funkcjach daty wbudowanych w SQL.
Funkcje daty w SQL:
- TERAZ()
- CZARNY()
- CURTIME()
- DATA()
- WYCIĄG()
- DATA_ADD()
- DATA_SUB()
- RÓŻNA DATY()
- FORMAT DATY()
Przyjrzyjmy się szczegółowo każdej z funkcji daty na przykładach. W przykładach pisania zapytań będziemy wykorzystywać bazę danych MySQL.
Rozważmy, że mamy tabelę uczniów zawierającą następujące dane:
ID | Nazwa | DataGodzina_Urodzenie | Miasto |
---|---|---|---|
1 | Mansi Shah | 2010-01-01 18:39:09 | Pune |
2 | Tejala Wagh’a | 2010-03-04 05:13:19 | Nasik |
3 | Sejal Kumari | 2010-05-01 10:31:07 | Bombaj |
4 | Sonala Jaina | 2010-09-09 17:17:07 | Shimla |
5 | Surili Maheshwari | 2010-07-10 20:45:18 | List |
Będziemy używać tej tabeli w niektórych przykładach.
1. TERAZ():
Funkcja TERAZ () w SQL poda datę i godzinę bieżącego systemu.
Składnia:
SELECT NOW ();
Przykład:
Napisz zapytanie wyświetlające datę i godzinę bieżącego systemu.
Zapytanie:
mysql> SELECT NOW () AS Current_Date_Time;
Tutaj napisaliśmy zapytanie SELECT z funkcją TERAZ (), aby uzyskać aktualną datę i godzinę systemu. Current_Date_Time to alias do przechowywania daty i godziny.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
Bieżąca_data_godzina |
---|
2021-10-24 18:28:44 |
Data i godzina wykonania zapytania w systemie to 24tPaździernik 2021 i 18:28:44. Dlatego jest wyświetlany jako wynik.
2. BARDZO()
Funkcja CURDATE () w SQL poda aktualną datę systemową.
Java losowa matematyka losowa
Składnia:
SELECT CURDATE ();
Przykład:
Napisz zapytanie wyświetlające datę bieżącego systemu.
Zapytanie:
mysql> SELECT CURDATE () AS CurrentDate;
Tutaj napisaliśmy zapytanie SELECT z funkcją CURDATE (), aby uzyskać aktualną datę systemu. CurrentDate jest aliasem do przechowywania daty.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
Bieżąca data |
---|
2021-10-24 |
Data wykonania zapytania w systemie to 24tPaździernik 2021 r. Dlatego jest wyświetlany jako wynik.
3. PRZEJDŹ()
Funkcja CURTIME () w SQL poda bieżący czas systemowy.
Składnia:
SELECT CURTIME ();
Przykład:
Napisz zapytanie wyświetlające aktualny czas systemowy.
Zapytanie:
mysql> SELECT CURTIME () AS CurrentTime;
Tutaj napisaliśmy zapytanie SELECT z funkcją CURTIME (), aby uzyskać aktualny czas systemowy. CurrentTime jest aliasem do przechowywania czasu.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
Obecny czas |
---|
18:49:07 |
Czas wykonania zapytania w systemie to 18:49:07. Dlatego jest wyświetlany jako wynik.
4. DATA()
Używając funkcji DATE () w SQL, możesz wyodrębnić datę z kolumny typu danych DATETIME.
Składnia:
SELECT DATE (DateTimeValue);
Przykład 1:
Napisz zapytanie wyświetlające datę z podanej daty i godziny, czyli 2021-10-24 18:28:44.
Zapytanie:
mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE (), aby uzyskać tylko datę z parametru daty i godziny przekazanego do funkcji DATE (). SHOW_DATE jest aliasem do przechowywania daty.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
POKAŻ_DATA |
---|
2021-10-24 |
Z parametru daty i godziny, tj. „2021-10-24 18:28:44”, wartość daty to 2021-10-24. Dlatego jest wyświetlany jako wynik.
Przykład 2:
Napisz zapytanie wyświetlające wszystkie szczegóły z tabeli uczniów wraz z datą z kolumny DateTime_Birth tabeli uczniów.
Zapytanie:
mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student;
Tutaj napisaliśmy zapytanie SELECT, aby pobrać identyfikator i nazwę. Date_of_Birth to alias dla DateTime_Birth. Użyliśmy funkcji Date_of_Birth z funkcją DATE (), aby uzyskać tylko datę.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
ID | Nazwa | Data urodzenia | Miasto |
---|---|---|---|
1 | Mansi Shah | 2010-01-01 | Pune |
2 | Tejala Wagh’a | 2010-03-04 | Nasik |
3 | Sejal Kumari | 2010-05-01 | Bombaj |
4 | Sonala Jaina | 2010-09-09 | Shimla |
5 | Surili Maheshwari | 2010-07-10 | List |
Wszystkie rekordy są wyświetlane tak, jak w tabeli uczniów, z wyjątkiem kolumny DateTime_Birth. Zgodnie z wymaganiami w kolumnie Data_urodzenia wyświetlana jest tylko data.
5. WYCIĄG()
Korzystając z funkcji EXTRACT() w SQL, możemy wyodrębnić określoną część daty i czasu według naszych wymagań: dzień, miesiąc, rok, dzień, godzina, minuta itp.
Składnia:
SELECT EXTRACT (PART FROM DATE / TIME);
Przykład 1:
Napisz zapytanie wyświetlające rok od podanej daty, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR;
Tutaj napisaliśmy zapytanie SELECT z funkcją EXTRACT (), aby uzyskać rok od podanej daty. SHOW_YEAR to alias do przechowywania roku.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
POKAŻ_ROK |
---|
2021 |
„2021” to rok w podanej dacie. Dlatego jest wyświetlany jako wynik.
Przykład 2:
Napisz zapytanie wyświetlające miesiąc od podanej daty, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH;
Tutaj napisaliśmy zapytanie SELECT z funkcją EXTRACT (), aby uzyskać miesiąc z podanej daty. SHOW_MONTH to alias do przechowywania miesiąca.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
Java do obiektu json
POKAŻ_MIESIĄC |
---|
10 |
10tto wartość miesiąca w podanej dacie. Dlatego jest wyświetlany jako wynik.
Przykład 3:
Napisz zapytanie wyświetlające dzień od podanej daty, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY;
Tutaj napisaliśmy zapytanie SELECT z funkcją EXTRACT (), aby uzyskać dzień z podanej daty. SHOW_DAY to alias do przechowywania dnia.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
POKAŻ DZIEŃ |
---|
24 |
24tjest wartością dnia w danej dacie. Dlatego jest wyświetlany jako wynik.
Przykład 4:
Napisz zapytanie wyświetlające godzinę z podanego czasu, czyli 19:10:43.
Zapytanie:
mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR;
Tutaj napisaliśmy zapytanie SELECT z funkcją EXTRACT (), aby uzyskać godzinę z podanego czasu. SHOW_HOUR to alias do przechowywania wartości godziny.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
POKAŻ_GODZINA |
---|
19 |
„19” to wartość godzinowa w danym czasie. Dlatego jest wyświetlany jako wynik.
Przykład 5:
Napisz zapytanie wyświetlające minutę z podanej godziny, czyli 19:10:43.
Zapytanie:
mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE;
Tutaj napisaliśmy zapytanie SELECT z funkcją EXTRACT (), aby uzyskać wartość minutową z podanego czasu. SHOW_MINUTE to alias do przechowywania minut.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
POKAŻ_MINUTĘ |
---|
10 |
„10” to wartość minut w danym czasie. Dlatego jest wyświetlany jako wynik.
Przykład 6:
Napisz zapytanie wyświetlające sekundy z podanego czasu, czyli 19:10:43.
Zapytanie:
co to jest monitor
mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND;
Tutaj napisaliśmy zapytanie SELECT z funkcją EXTRACT (), aby uzyskać wartość sekund z podanego czasu. SHOW_SECOND jest aliasem do przechowywania wartości sekundy.
Po wykonaniu powyższego zapytania otrzymaliśmy następujący wynik:
POKAŻ_SEKUNDĘ |
---|
43 |
43 to druga wartość w danym czasie. Dlatego jest wyświetlany jako wynik.
6. DATA_ADD()
Wykorzystując funkcję DATE_ADD() w języku SQL możemy do podanej daty dodać konkretny przedział czasowy.
Składnia:
SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added);
Przykład 1:
Napisz zapytanie, które doda do podanej daty odstęp 15 dni, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_ADD (), aby dodać odstęp 15 dni do podanej daty. NEW_DATE to alias do przechowywania wartości nowej daty.
Otrzymasz następujące dane wyjściowe:
NOWA DATA |
---|
2021-11-08 |
Po dodaniu 15-dniowego odstępu do 2021-10-24 nową datą jest 2021-11-08.
Przykład 2:
Napisz zapytanie, które doda do podanej daty odstęp 5 miesięcy, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_ADD (), aby dodać odstęp 5 miesięcy do podanej daty. NEW_DATE to alias do przechowywania wartości nowej daty.
Otrzymasz następujące dane wyjściowe:
NOWA DATA |
---|
24.03.2022 |
Po dodaniu 5-miesięcznego odstępu do 24.10.2021 nową datą jest 24.03.2022.
Przykład 3:
jak sprawdzić rozmiar mojego monitora
Napisz zapytanie, które doda do podanej daty odstęp 25 lat, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_ADD (), aby dodać przedział 25 lat do podanej daty. NEW_DATE to alias do przechowywania wartości nowej daty.
Otrzymasz następujące dane wyjściowe:
NOWA DATA |
---|
2046-10-24 |
Po dodaniu 25-letniego odstępu do 24.10.2021 nową datą jest 24.10.2046.
7. DATA_SUB()
Korzystając z funkcji DATE_SUB() w SQL, możemy usunąć konkretny przedział czasu z podanej daty.
Składnia:
SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted);
Przykład 1:
Napisz zapytanie usuwające przedział 25 lat od podanej daty, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_SUB(), aby usunąć odstęp 25 lat od podanej daty. NEW_DATE to alias do przechowywania wartości nowej daty.
Otrzymasz następujące dane wyjściowe:
NOWA DATA |
---|
1996-10-24 |
Po usunięciu 25-letniego odstępu od 24.10.2021 nową datą jest 24.10.1996.
Przykład 2:
Napisz zapytanie usuwające przedział 5 miesięcy od podanej daty, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_SUB(), aby usunąć odstęp 5 miesięcy od podanej daty. NEW_DATE to alias do przechowywania wartości nowej daty.
Otrzymasz następujące dane wyjściowe:
NOWA DATA |
---|
24.05.2021 |
Po usunięciu 5-miesięcznego odstępu z 24.10.2021 nową datą jest 24.05.2021.
Przykład 3:
Napisz zapytanie usuwające przedział 15 dni od podanej daty, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_SUB(), aby usunąć odstęp 15 dni od podanej daty. NEW_DATE to alias do przechowywania wartości nowej daty.
Otrzymasz następujące dane wyjściowe:
NOWA DATA |
---|
2021-10-09 |
Po usunięciu 15-dniowego odstępu z 24.10.2021 nową datą jest 09.10.2021.
8. RÓŻNICA DATY()
Użycie funkcji DATEDIFF() w SQL da nam liczbę dni przypadającą pomiędzy dwiema podanymi datami.
Składnia:
SELECT DATEDIFF(Date1, Date2);
Przykład 1:
Napisz zapytanie obliczające różnicę między dwiema podanymi datami, czyli 24tPaździernik 2021 i 9tPaździernik 2021.
Zapytanie:
mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_DIFF(), aby uzyskać różnicę między datami 2021-10-24 i 2021-10-09. Number_of_Days to alias do przechowywania różnicy w liczbie dni.
Otrzymasz następujące dane wyjściowe:
Liczba dni |
---|
piętnaście |
Różnica między datami 2021-10-24 i 2021-10-09 wynosi 15 dni.
Przykład 2:
Napisz zapytanie obliczające różnicę między dwiema podanymi datami, czyli 5tMaja 2018 i 5tMaj 2008.
Zapytanie:
mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_DIFF (), aby uzyskać różnicę między datami 2018-05-05 i 2008-05-05. Number_of_Days to alias do przechowywania różnicy w liczbie dni.
Otrzymasz następujące dane wyjściowe:
Liczba dni |
---|
3652 |
Różnica między datami 2018-05-05 i 2008-05-05 wynosi 3652 dni.
9. FORMAT_DATY()
Używając funkcji DATE_FORMAT () w języku SQL, możemy wyświetlić informacje związane z datą lub czasem w dobrze sformatowany sposób.
Składnia użycia funkcji DATE_FORMAT w kolumnie tabeli:
SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name;
LUB
Składnia do formatowania określonej daty:
SELECT DATE_FORMAT (Date, Expression);
Przykład 1:
Napisz zapytanie wyświetlające podaną datę w dobrze sformatowanym formacie, czyli 24tPaździernik 2021.
Zapytanie:
mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_FORMAT (), aby uzyskać datę 2021-10-24 w sformatowanej formie. Formatted_Date to alias do przechowywania sformatowanej daty.
rzutuj na ciąg Java
Otrzymasz następujące dane wyjściowe:
Sformatowana_data |
---|
Niedziela 24 października 2021r |
Niedziela 24 października 2021 r. to sformatowana data 2021-10-24.
Przykład 2:
Napisz zapytanie wyświetlające podaną datę i godzinę w dobrze sformatowanym formacie, np. 24tPaździernik 2021 22:30:17.
Zapytanie:
mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_FORMAT (), aby uzyskać datę i godzinę „2021-10-24 22:30:17” w sformatowanej formie. Formatted_DateTime to alias do przechowywania sformatowanej daty i godziny.
Otrzymasz następujące dane wyjściowe:
Sformatowana_DataGodzina |
---|
Niedziela 24 października 2021 22:30:17 |
Niedziela, 24 października 2021 r., godzina 22:30:17 to sformatowana data i godzina dla 24.10.2021 r., godzina 22:30:17.
Przykład 3:
Napisz zapytanie wyświetlające w dobrze sformatowany sposób wszystkie szczegóły z kolumny ucznia z kolumną DateTime_Birth.
Zapytanie:
mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student;
Tutaj napisaliśmy zapytanie SELECT z funkcją DATE_FORMAT (), aby uzyskać datę i godzinę dla wszystkich rekordów w sformatowanej formie. Formatted_DateTime to alias do przechowywania sformatowanej daty i godziny.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Sformatowana_DataGodzina | Miasto |
---|---|---|---|
1 | Mansi Shah | Piątek, 1 stycznia 2010, 18:39:09 | Pune |
2 | Tejala Wagh’a | Czwartek, 4 marca 2010, 05:13:19 | Nasik |
3 | Sejal Kumari | Sobota, 1 maja 2010, 10:31:07 | Bombaj |
4 | Sonala Jaina | Czwartek, 9 września 2010, 17:17:07 | Shimla |
5 | Surili Maheshwari | Sobota, 10 lipca 2010, godzina 20:45:18 | List |
Wszystkie rekordy są wyświetlane tak, jak w tabeli uczniów, z wyjątkiem kolumny DateTime_Birth. W kolumnie Formatted_DateTime wyświetlana jest tylko data i godzina zgodnie z wymaganiami.