logo

Funkcje daty SQL

W tym poradniku dowiemy się o niektórych ważnych funkcjach daty wbudowanych w SQL.

Funkcje daty w SQL:

  1. TERAZ()
  2. CZARNY()
  3. CURTIME()
  4. DATA()
  5. WYCIĄG()
  6. DATA_ADD()
  7. DATA_SUB()
  8. RÓŻNA DATY()
  9. 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.