U ovom vodiču naučit ćemo o nekim od važnih funkcija datuma koje su ugrađene u SQL.
Funkcije datuma u SQL-u:
- SADA()
- CURDATE()
- CURTIME()
- DATUM()
- EKSTRAKT()
- DATE_ADD()
- DATE_SUB()
- DATEDIFF()
- OBLIK DATUMA()
Pogledajmo detaljno svaku funkciju datuma jednu po jednu uz pomoć primjera. Koristit ćemo MySQL bazu podataka u primjerima za pisanje upita.
Uzmimo u obzir da imamo tablicu učenika sa sljedećim podacima:
iskaznica | Ime | DatumVrijeme_Rođenje | Grad |
---|---|---|---|
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 | Mumbai |
4 | Sonal Jain | 2010-09-09 17:17:07 | Shimla |
5 | Surili Maheshwari | 2010-07-10 20:45:18 | Pismo |
Koristit ćemo ovu tablicu u nekim od primjera.
1. SADA():
NOW () funkcija u SQL-u dat će datum i vrijeme trenutnog sustava.
Sintaksa:
SELECT NOW ();
Primjer:
Napišite upit za prikaz datuma i vremena trenutnog sustava.
Upit:
mysql> SELECT NOW () AS Current_Date_Time;
Ovdje smo napisali SELECT upit s funkcijom NOW () kako bismo dobili trenutni datum i vrijeme sustava. Current_Date_Time je alias za pohranjivanje datuma i vremena.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
Trenutačni_datum_vrijeme |
---|
2021-10-24 18:28:44 |
Datum i vrijeme kada je upit izvršen u sustavu su 24thlistopada 2021. i 18:28:44. Stoga se prikazuje kao izlaz.
2. CURDATE()
Funkcija CURDATE () u SQL-u dat će trenutni datum sustava.
vba
Sintaksa:
SELECT CURDATE ();
Primjer:
Napišite upit za prikaz trenutnog datuma sustava.
Upit:
mysql> SELECT CURDATE () AS CurrentDate;
Ovdje smo napisali SELECT upit s funkcijom CURDATE () kako bismo dobili trenutni datum sustava. CurrentDate je alias za pohranjivanje datuma.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
Trenutni datum |
---|
2021-10-24 |
Datum kada je upit izvršen u sustavu je 24thlistopada 2021. Stoga se prikazuje kao izlaz.
3. CURTIME()
Funkcija CURTIME () u SQL-u će dati trenutno vrijeme sustava.
Sintaksa:
SELECT CURTIME ();
Primjer:
Napišite upit za prikaz trenutnog vremena sustava.
Upit:
mysql> SELECT CURTIME () AS CurrentTime;
Ovdje smo napisali SELECT upit s funkcijom CURTIME () kako bismo dobili trenutno vrijeme sustava. CurrentTime je alias za pohranu vremena.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
Trenutno vrijeme |
---|
18:49:07 |
Vrijeme u kojem je upit izvršen u sustavu je 18:49:07. Stoga se prikazuje kao izlaz.
4. DATUM()
Koristeći funkciju DATE () u SQL-u, možete posebno izdvojiti datum iz stupca tipa podataka DATETIME.
Sintaksa:
SELECT DATE (DateTimeValue);
Primjer 1:
Napišite upit za prikaz datuma od zadanog datuma i vremena, tj. 2021-10-24 18:28:44.
Upit:
mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE () kako bismo dobili samo datum iz parametra datuma i vremena proslijeđenog funkciji DATE(). SHOW_DATE je alias za pohranjivanje datuma.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
SHOW_DATE |
---|
2021-10-24 |
Iz parametra datuma i vremena, tj. '2021-10-24 18:28:44', vrijednost datuma je 2021-10-24. Stoga se prikazuje kao izlaz.
Primjer 2:
Napišite upit za prikaz svih detalja iz tablice učenika s datumom iz stupca DateTime_Birth tablice učenika.
Upit:
mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student;
Ovdje smo napisali SELECT upit za dohvaćanje ID-a i imena. Date_of_Birth je alias za DateTime_Birth. Koristili smo Date_of_Birth s funkcijom DATE () kako bismo dobili samo datum.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
iskaznica | Ime | Datum rođenja | Grad |
---|---|---|---|
1 | Mansi Šah | 2010-01-01 | Pune |
2 | Tejal Wagh | 2010-03-04 | Nasik |
3 | Sejal Kumari | 2010-05-01 | Mumbai |
4 | Sonal Jain | 2010-09-09 | Shimla |
5 | Surili Maheshwari | 2010-07-10 | Pismo |
Svi se zapisi prikazuju onakvi kakvi jesu iz tablice učenika osim stupca DateTime_Birth. U stupcu Date_of_Birth prikazuje se samo datum prema zahtjevu.
5. EKSTRAKT()
Pomoću funkcije EXTRACT() u SQL-u možemo izdvojiti određeni dio datuma i vremena prema našim zahtjevima: dan, mjesec, godina, dan, sat, minuta itd.
Sintaksa:
SELECT EXTRACT (PART FROM DATE / TIME);
Primjer 1:
Napišite upit za prikaz godine od zadanog datuma, tj. 24thlistopada 2021.
Upit:
mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR;
Ovdje smo napisali SELECT upit s funkcijom EXTRACT () za dobivanje godine od zadanog datuma. SHOW_YEAR je alias za pohranu godine.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
SHOW_YEAR |
---|
2021 |
'2021' je godina u navedenom datumu. Stoga se prikazuje kao izlaz.
Primjer 2:
Napišite upit za prikaz mjeseca od zadanog datuma, tj. 24thlistopada 2021.
Upit:
mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH;
Ovdje smo napisali SELECT upit s funkcijom EXTRACT () za dobivanje mjeseca od zadanog datuma. SHOW_MONTH je alias za pohranu mjeseca.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
SHOW_MONTH |
---|
10 |
10thje mjesečna vrijednost u zadanom datumu. Stoga se prikazuje kao izlaz.
primjer OS otvorenog koda je
Primjer 3:
Napišite upit za prikaz dana od zadanog datuma, tj. 24thlistopada 2021.
Upit:
mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY;
Ovdje smo napisali SELECT upit s funkcijom EXTRACT () da dobijemo dan od zadanog datuma. SHOW_DAY je alias za pohranjivanje dana.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
SHOW_DAY |
---|
24 |
24thje dnevna vrijednost u danom datumu. Stoga se prikazuje kao izlaz.
Primjer 4:
Napišite upit za prikaz sata od zadanog vremena, tj. 19:10:43.
Upit:
mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR;
Ovdje smo napisali SELECT upit s funkcijom EXTRACT () da dobijemo sat iz zadanog vremena. SHOW_HOUR je alias za pohranjivanje vrijednosti jednog sata.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
SHOW_HOUR |
---|
19 |
'19' je vrijednost sata u danom vremenu. Stoga se prikazuje kao izlaz.
Primjer 5:
Napišite upit za prikaz minuta od zadanog vremena, tj. 19:10:43.
Upit:
mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE;
Ovdje smo napisali SELECT upit s funkcijom EXTRACT () za dobivanje vrijednosti minuta iz zadanog vremena. SHOW_MINUTE je alias za pohranjivanje minuta.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
SHOW_MINUTE |
---|
10 |
'10' je vrijednost minuta u zadanom vremenu. Stoga se prikazuje kao izlaz.
Primjer 6:
Napišite upit za prikaz sekundi od zadanog vremena, tj. 19:10:43.
Upit:
mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND;
Ovdje smo napisali SELECT upit s funkcijom EXTRACT () kako bismo dobili vrijednost sekundi iz zadanog vremena. SHOW_SECOND je alias za pohranjivanje vrijednosti sekunde.
Nakon izvršenja gornjeg upita, dobili smo sljedeći rezultat:
SHOW_SECOND |
---|
43 |
43 je druga vrijednost u zadanom vremenu. Stoga se prikazuje kao izlaz.
koje godine je izumljeno računalo
6. DATE_ADD()
Pomoću funkcije DATE_ADD () u SQL-u možemo dodati određeni vremenski interval zadanom datumu.
Sintaksa:
SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added);
Primjer 1:
Napišite upit za dodavanje intervala od 15 dana zadanom datumu, tj. 24thlistopada 2021.
Upit:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_ADD () za dodavanje intervala od 15 dana zadanom datumu. NEW_DATE je alias za pohranjivanje vrijednosti novog datuma.
Dobit ćete sljedeći izlaz:
NEW_DATE |
---|
2021-11-08 |
Nakon dodavanja intervala od 15 dana na 2021-10-24, novi datum je 2021-11-08.
Primjer 2:
Napišite upit za dodavanje intervala od 5 mjeseci zadanom datumu, tj. 24thlistopada 2021.
Upit:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_ADD () za dodavanje intervala od 5 mjeseci zadanom datumu. NEW_DATE je alias za pohranjivanje vrijednosti novog datuma.
Dobit ćete sljedeći izlaz:
NEW_DATE |
---|
2022-03-24 |
Nakon dodavanja intervala od 5 mjeseci na 2021-10-24, novi datum je 2022-03-24.
Primjer 3:
Napišite upit za dodavanje intervala od 25 godina zadanom datumu, tj. 24thlistopada 2021.
Upit:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_ADD () za dodavanje intervala od 25 godina zadanom datumu. NEW_DATE je alias za pohranjivanje vrijednosti novog datuma.
java generira slučajni broj
Dobit ćete sljedeći izlaz:
NEW_DATE |
---|
2046-10-24 |
Nakon dodavanja intervala od 25 godina na 2021-10-24, novi datum je 2046-10-24.
7. DATE_SUB()
Pomoću funkcije DATE_SUB () u SQL-u možemo ukloniti određeni vremenski interval od zadanog datuma.
Sintaksa:
SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted);
Primjer 1:
Napišite upit za uklanjanje intervala od 25 godina od zadanog datuma, tj. 24.thlistopada 2021.
Upit:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_SUB() za uklanjanje intervala od 25 godina od zadanog datuma. NEW_DATE je alias za pohranjivanje vrijednosti novog datuma.
Dobit ćete sljedeći izlaz:
NEW_DATE |
---|
1996-10-24 |
Nakon uklanjanja intervala od 25 godina od 2021-10-24, novi datum je 1996-10-24.
Primjer 2:
Napišite upit za uklanjanje intervala od 5 mjeseci od zadanog datuma, tj. 24thlistopada 2021.
Upit:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_SUB() za uklanjanje intervala od 5 mjeseci od zadanog datuma. NEW_DATE je alias za pohranjivanje vrijednosti novog datuma.
Dobit ćete sljedeći izlaz:
NEW_DATE |
---|
2021-05-24 |
Nakon uklanjanja intervala od 5 mjeseci od 2021-10-24, novi datum je 2021-05-24.
Primjer 3:
Napišite upit za uklanjanje intervala od 15 dana od zadanog datuma, tj. 24.thlistopada 2021.
Upit:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_SUB() za uklanjanje intervala od 15 dana od zadanog datuma. NEW_DATE je alias za pohranjivanje vrijednosti novog datuma.
Dobit ćete sljedeći izlaz:
NEW_DATE |
---|
2021-10-09 |
Nakon uklanjanja intervala od 15 dana iz 2021-10-24, novi datum je 2021-10-09.
8. DATEDIFF()
Korištenje funkcije DATEDIFF() u SQL-u dat će nam broj dana koji padaju između dva navedena datuma.
Sintaksa:
SELECT DATEDIFF(Date1, Date2);
Primjer 1:
Napišite upit za izračunavanje razlike između dva data datuma, tj. 24thlistopada 2021. i 9thlistopada 2021.
Upit:
mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_DIFF() kako bismo dobili razliku između datuma 2021-10-24 i 2021-10-09. Number_of_Days je alias za pohranu razlike u smislu broja dana.
Dobit ćete sljedeći izlaz:
Broj dana |
---|
petnaest |
Postoji razlika od 15 dana između datuma 2021-10-24 i 2021-10-09.
Primjer 2:
Napišite upit za izračunavanje razlike između dva data datuma, tj. 5thsvibnja 2018. i 5thsvibnja 2008.
Upit:
mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE;
Ovdje smo napisali SELECT upit s funkcijom DATE_DIFF () kako bismo dobili razliku između datuma 2018-05-05 i 2008-05-05. Number_of_Days je alias za pohranu razlike u smislu broja dana.
Dobit ćete sljedeći izlaz:
Broj dana |
---|
3652 |
Između datuma 2018-05-05 i 2008-05-05 postoji razlika od 3652 dana.
9. DATE_FORMAT()
Pomoću funkcije DATE_FORMAT () u SQL-u možemo prikazati podatke vezane uz datum ili vrijeme na dobro formatiran način.
Sintaksa upotrebe funkcije DATE_FORMAT na stupcu tablice:
SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name;
ILI
Sintaksa za oblikovanje određenog datuma:
SELECT DATE_FORMAT (Date, Expression);
Primjer 1:
Napišite upit za prikaz zadanog datuma na dobro formatiran način, tj. 24thlistopada 2021.
Upit:
mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date;
Ovdje smo napisali SELECT upit s funkcijom DATE_FORMAT () kako bismo dobili datum 2021-10-24 u formatiranom obliku. Formatted_Date je alias za pohranjivanje formatiranog datuma.
sql poredak slučajnim odabirom
Dobit ćete sljedeći izlaz:
Formatirani_datum |
---|
Nedjelja 24. listopada 2021 |
Nedjelja, 24. listopada 2021. je formatirani datum za 2021-10-24.
Primjer 2:
Napišite upit za prikaz zadanog datuma i vremena na dobro formatiran način, tj. 24thListopad, 2021. 22:30:17.
Upit:
mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime;
Ovdje smo napisali SELECT upit s funkcijom DATE_FORMAT () kako bismo dobili datum i vrijeme '2021-10-24 22:30:17' u formatiranom obliku. Formatted_DateTime je alias za pohranjivanje formatiranog datuma i vremena.
Dobit ćete sljedeći izlaz:
Formatirani_DatumVrijeme |
---|
Nedjelja, 24. listopada 2021. 22:30:17 |
Nedjelja, 24. listopada 2021., 22:30:17 je formatirani datum i vrijeme za 2021-10-24 22:30:17.
Primjer 3:
Napišite upit za prikaz svih pojedinosti iz stupca student sa stupcem DateTime_Birth na dobro formatiran način.
Upit:
mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student;
Ovdje smo napisali SELECT upit s funkcijom DATE_FORMAT () kako bismo dobili datum i vrijeme za sve zapise u formatiranom obliku. Formatted_DateTime je alias za pohranjivanje formatiranog datuma i vremena.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Formatirani_DatumVrijeme | Grad |
---|---|---|---|
1 | Mansi Šah | Petak, 1. siječnja 2010. 18:39:09 | Pune |
2 | Tejal Wagh | Četvrtak, 4. ožujka 2010. 05:13:19 | Nasik |
3 | Sejal Kumari | Subota, 1. svibnja 2010. 10:31:07 | Mumbai |
4 | Sonal Jain | Četvrtak, 9. rujna 2010. 17:17:07 | Shimla |
5 | Surili Maheshwari | Subota, 10. srpnja 2010. 20:45:18 | Pismo |
Svi se zapisi prikazuju onakvi kakvi jesu iz tablice učenika osim stupca DateTime_Birth. U stupcu Formatted_DateTime prikazuju se samo datum i vrijeme prema potrebi.