logo

Datumske funkcije SQL

V tej vadnici se bomo seznanili z nekaterimi pomembnimi datumskimi funkcijami, ki so vgrajene v SQL.

Datumske funkcije v SQL:

  1. ZDAJ()
  2. CURDATE()
  3. CURTIME()
  4. DATUM()
  5. IZVLEČEK()
  6. DATE_ADD()
  7. DATE_SUB()
  8. DATEDIFF()
  9. FORMAT DATUMA()

Oglejmo si podrobneje vsako funkcijo datuma eno za drugo s pomočjo primerov. Za pisanje poizvedb bomo v primerih uporabljali bazo MySQL.

Recimo, da imamo tabelo študentov z naslednjimi podatki:

ID Ime DatumUra_Rojstvo Mesto
1 Mansi Šah 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 Mumbaj
4 Sonal Jain 2010-09-09 17:17:07 Šimla
5 Surili Maheshwari 2010-07-10 20:45:18 Pismo

To tabelo bomo uporabili v nekaterih primerih.

1. ZDAJ():

Funkcija NOW () v SQL bo dala datum in čas trenutnega sistema.

Sintaksa:

 SELECT NOW (); 

primer:

Napišite poizvedbo za prikaz datuma in ure trenutnega sistema.

poizvedba:

 mysql> SELECT NOW () AS Current_Date_Time; 

Tukaj smo napisali poizvedbo SELECT s funkcijo NOW (), da dobimo trenutni datum in uro sistema. Current_Date_Time je vzdevek za shranjevanje datuma in ure.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

Trenutni_datum_čas
2021-10-24 18:28:44

Datum in ura, ko je bila poizvedba izvedena v sistemu, sta 24thoktober 2021 in 18:28:44. Zato je prikazan kot izhod.

2. CURDATE()

Funkcija CURDATE () v SQL poda datum trenutnega sistema.

osnove java

Sintaksa:

 SELECT CURDATE (); 

primer:

Napišite poizvedbo za prikaz trenutnega sistemskega datuma.

poizvedba:

 mysql> SELECT CURDATE () AS CurrentDate; 

Tukaj smo napisali poizvedbo SELECT s funkcijo CURDATE (), da dobimo trenutni datum sistema. CurrentDate je vzdevek za shranjevanje datuma.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

Trenutni datum
2021-10-24

Datum, ko je bila poizvedba izvedena v sistemu, je 24thOktober 2021. Zato je prikazan kot rezultat.

3. CURTIME()

Funkcija CURTIME () v SQL poda trenutni sistemski čas.

Sintaksa:

 SELECT CURTIME (); 

primer:

Napišite poizvedbo za prikaz trenutnega sistemskega časa.

poizvedba:

 mysql> SELECT CURTIME () AS CurrentTime; 

Tukaj smo napisali poizvedbo SELECT s funkcijo CURTIME (), da dobimo trenutni čas sistema. CurrentTime je vzdevek za shranjevanje časa.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

Trenutni čas
18:49:07

Čas, ko je bila poizvedba izvedena v sistemu, je 18:49:07. Zato je prikazan kot izhod.

4. DATUM()

S funkcijo DATE () v SQL lahko posebej ekstrahirate datum iz stolpca podatkovnega tipa DATETIME.

Sintaksa:

 SELECT DATE (DateTimeValue); 

Primer 1:

Napišite poizvedbo za prikaz datuma od podanega datuma in časa, tj. 2021-10-24 18:28:44.

poizvedba:

 mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE (), da dobimo samo datum iz parametra datuma in časa, posredovanega funkciji DATE(). SHOW_DATE je vzdevek za shranjevanje datuma.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

SHOW_DATE
2021-10-24

Iz parametra datuma in časa, tj. '2021-10-24 18:28:44', je vrednost datuma 2021-10-24. Zato je prikazan kot izhod.

Primer 2:

Napišite poizvedbo za prikaz vseh podrobnosti iz tabele študentov z datumom iz stolpca DateTime_Birth tabele študentov.

poizvedba:

 mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student; 

Tukaj smo napisali poizvedbo SELECT za pridobivanje ID-ja in imena. Date_of_Birth je vzdevek za DateTime_Birth. Uporabili smo Date_of_Birth s funkcijo DATE (), da bi dobili samo datum.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

ID Ime Datum rojstva Mesto
1 Mansi Šah 2010-01-01 Pune
2 Tejal Wagh 2010-03-04 Nasik
3 Sejal Kumari 2010-05-01 Mumbaj
4 Sonal Jain 2010-09-09 Šimla
5 Surili Maheshwari 2010-07-10 Pismo

Vsi zapisi so prikazani, kot so iz tabele študentov, razen stolpca DateTime_Birth. V stolpcu Date_of_Birth je prikazan samo datum v skladu z zahtevo.

5. IZVLEČEK()

S funkcijo EXTRACT() v SQL lahko izvlečemo določen del datuma in časa glede na naše zahteve: dan, mesec, leto, dan, uro, minuto itd.

Sintaksa:

 SELECT EXTRACT (PART FROM DATE / TIME); 

Primer 1:

Napišite poizvedbo za prikaz leta od podanega datuma, tj. 24thoktober 2021.

poizvedba:

 mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR; 

Tukaj smo napisali poizvedbo SELECT s funkcijo EXTRACT (), da dobimo leto od podanega datuma. SHOW_YEAR je vzdevek za shranjevanje leta.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

SHOW_YEAR
2021

'2021' je leto v navedenem datumu. Zato je prikazan kot izhod.

spremenljivka javascript global

Primer 2:

Napišite poizvedbo za prikaz meseca od danega datuma, tj. 24thoktober 2021.

poizvedba:

 mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH; 

Tukaj smo napisali poizvedbo SELECT s funkcijo EXTRACT (), da dobimo mesec od podanega datuma. SHOW_MONTH je vzdevek za shranjevanje meseca.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

SHOW_MONTH
10

10thje mesečna vrednost v danem datumu. Zato je prikazan kot izhod.

Primer 3:

Napišite poizvedbo za prikaz dneva od podanega datuma, tj. 24thoktober 2021.

poizvedba:

 mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY; 

Tukaj smo napisali poizvedbo SELECT s funkcijo EXTRACT (), da dobimo dan od podanega datuma. SHOW_DAY je vzdevek za shranjevanje dneva.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

SHOW_DAY
24

24thje dnevna vrednost v danem datumu. Zato je prikazan kot izhod.

Primer 4:

Napišite poizvedbo za prikaz ure od danega časa, tj. 19:10:43.

poizvedba:

 mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR; 

Tukaj smo napisali poizvedbo SELECT s funkcijo EXTRACT (), da dobimo uro iz danega časa. SHOW_HOUR je vzdevek za shranjevanje vrednosti ure.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

SHOW_HOUR
19

'19' je urna vrednost v danem času. Zato je prikazan kot izhod.

Primer 5:

Napišite poizvedbo za prikaz minut od danega časa, tj. 19:10:43.

poizvedba:

 mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo EXTRACT (), da dobimo minutno vrednost iz danega časa. SHOW_MINUTE je vzdevek za shranjevanje minut.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

SHOW_MINUTE
10

'10' je minutna vrednost v danem času. Zato je prikazan kot izhod.

Primer 6:

Napišite poizvedbo za prikaz sekund od danega časa, tj. 19:10:43.

poizvedba:

 mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND; 

Tukaj smo napisali poizvedbo SELECT s funkcijo EXTRACT (), da dobimo vrednost sekund iz danega časa. SHOW_SECOND je vzdevek za shranjevanje vrednosti sekunde.

Po izvedbi zgornje poizvedbe smo dobili naslednji rezultat:

SHOW_SECOND
43

43 je druga vrednost v danem času. Zato je prikazan kot izhod.

6. DATE_ADD()

S funkcijo DATE_ADD () v SQL lahko danemu datumu dodamo določen časovni interval.

Sintaksa:

 SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added); 

Primer 1:

Napišite poizvedbo, da podanemu datumu dodate interval 15 dni, tj. 24thOktober 2021.

poizvedba:

 mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_ADD (), da danemu datumu dodamo interval 15 dni. NEW_DATE je vzdevek za shranjevanje vrednosti novega datuma.

Dobili boste naslednje rezultate:

NEW_DATE
2021-11-08

Po dodajanju 15-dnevnega intervala na 2021-10-24 je novi datum 2021-11-08.

Primer 2:

Napišite poizvedbo, da danemu datumu dodate interval 5 mesecev, tj. 24thOktober 2021.

poizvedba:

 mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_ADD (), da danemu datumu dodamo interval 5 mesecev. NEW_DATE je vzdevek za shranjevanje vrednosti novega datuma.

Dobili boste naslednje rezultate:

bool v niz java
NEW_DATE
2022-03-24

Po dodajanju 5-mesečnega intervala na 2021-10-24 je novi datum 2022-03-24.

Primer 3:

Napišite poizvedbo, da danemu datumu dodate interval 25 let, tj. 24thOktober 2021.

poizvedba:

 mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_ADD (), da danemu datumu dodamo interval 25 let. NEW_DATE je vzdevek za shranjevanje vrednosti novega datuma.

Dobili boste naslednje rezultate:

NEW_DATE
2046-10-24

Po dodajanju 25-letnega intervala 2021-10-24 je novi datum 2046-10-24.

7. DATE_SUB()

S funkcijo DATE_SUB () v SQL lahko odstranimo določen časovni interval iz podanega datuma.

Sintaksa:

 SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted); 

Primer 1:

Napišite poizvedbo za odstranitev intervala 25 let od podanega datuma, tj. 24thOktober 2021.

poizvedba:

 mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_SUB(), da odstranimo interval 25 let od podanega datuma. NEW_DATE je vzdevek za shranjevanje vrednosti novega datuma.

Dobili boste naslednje rezultate:

NEW_DATE
1996-10-24

Po odstranitvi 25-letnega intervala iz 2021-10-24 je novi datum 1996-10-24.

Primer 2:

Napišite poizvedbo za odstranitev intervala 5 mesecev od podanega datuma, tj. 24thOktober 2021.

poizvedba:

odzivna tabela
 mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_SUB(), da odstranimo interval 5 mesecev od danega datuma. NEW_DATE je vzdevek za shranjevanje vrednosti novega datuma.

Dobili boste naslednje rezultate:

NEW_DATE
2021-05-24

Po odstranitvi 5-mesečnega intervala iz 2021-10-24 je novi datum 2021-05-24.

Primer 3:

Napišite poizvedbo za odstranitev intervala 15 dni od danega datuma, tj. 24thOktober 2021.

poizvedba:

 mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_SUB(), da odstranimo interval 15 dni od danega datuma. NEW_DATE je vzdevek za shranjevanje vrednosti novega datuma.

Dobili boste naslednje rezultate:

NEW_DATE
2021-10-09

Po odstranitvi 15-dnevnega intervala iz 2021-10-24 je novi datum 2021-10-09.

8. DATEDIFF()

Uporaba funkcije DATEDIFF() v SQL nam bo dala število dni, ki spadajo med podana datuma.

Sintaksa:

 SELECT DATEDIFF(Date1, Date2); 

Primer 1:

Napišite poizvedbo za izračun razlike med dvema podanima datumoma, tj. 24thoktober 2021 in 9thOktober 2021.

poizvedba:

 mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_DIFF(), da dobimo razliko med datumoma 2021-10-24 in 2021-10-09. Number_of_Days je vzdevek za shranjevanje razlike glede na število dni.

Dobili boste naslednje rezultate:

Število_dni
petnajst

Med datumoma 2021-10-24 in 2021-10-09 je razlika 15 dni.

Primer 2:

Napišite poizvedbo za izračun razlike med dvema podanima datumoma, tj. 5thmaja 2018 in 5thmaj 2008.

poizvedba:

 mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_DIFF (), da dobimo razliko med datumoma 2018-05-05 in 2008-05-05. Number_of_Days je vzdevek za shranjevanje razlike glede na število dni.

Dobili boste naslednje rezultate:

Število_dni
3652

Med datumoma 2018-05-05 in 2008-05-05 je razlika 3652 dni.

9. DATE_FORMAT()

S funkcijo DATE_FORMAT () v SQL lahko prikažemo informacije, povezane z datumom ali uro, na dobro oblikovan način.

Sintaksa uporabe funkcije DATE_FORMAT v stolpcu tabele:

 SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name; 

ALI

Sintaksa za oblikovanje določenega datuma:

 SELECT DATE_FORMAT (Date, Expression); 

Primer 1:

Napišite poizvedbo za prikaz danega datuma na dobro oblikovan način, tj. 24thOktober 2021.

poizvedba:

 mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_FORMAT (), da dobimo datum 2021-10-24 v oblikovani obliki. Formatted_Date je vzdevek za shranjevanje oblikovanega datuma.

linux kateri ukaz

Dobili boste naslednje rezultate:

Oblikovani_datum
Nedelja, 24. oktober 2021

Nedelja, 24. oktober 2021, je formatirani datum za 2021-10-24.

Primer 2:

Napišite poizvedbo za prikaz danega datuma in časa na dobro oblikovan način, tj. 24thOktober, 2021 22:30:17.

poizvedba:

 mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_FORMAT (), da dobimo datum in čas '2021-10-24 22:30:17' v oblikovani obliki. Formatted_DateTime je vzdevek za shranjevanje oblikovanega datuma in ure.

Dobili boste naslednje rezultate:

Formatted_DateTime
Nedelja, 24. oktober 2021, 22:30:17

Nedelja, 24. oktober 2021, 22:30:17 je formatiran datum in čas za 2021-10-24 22:30:17.

Primer 3:

Napišite poizvedbo za prikaz vseh podrobnosti iz stolpca študenta s stolpcem DateTime_Birth na dobro oblikovan način.

poizvedba:

 mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student; 

Tukaj smo napisali poizvedbo SELECT s funkcijo DATE_FORMAT (), da dobimo datum in uro za vse zapise v formatirani obliki. Formatted_DateTime je vzdevek za shranjevanje oblikovanega datuma in ure.

Dobili boste naslednje rezultate:

ID Ime Formatted_DateTime Mesto
1 Mansi Šah Petek, 1. januar 2010 18:39:09 Pune
2 Tejal Wagh Četrtek, 4. marec 2010, 05:13:19 Nasik
3 Sejal Kumari Sobota, 1. maj 2010 10:31:07 Mumbaj
4 Sonal Jain Četrtek, 9. september 2010 17:17:07 Šimla
5 Surili Maheshwari Sobota, 10. julij 2010 ob 20.45.18 Pismo

Vsi zapisi so prikazani, kot so iz tabele študentov, razen stolpca DateTime_Birth. V stolpcu Formatted_DateTime sta prikazana samo datum in ura, kot je zahtevano.