Šioje pamokoje sužinosime apie kai kurias svarbias datos funkcijas, kurios yra integruotos SQL.
Datos funkcijos SQL:
- DABAR ()
- CURDATE ()
- CURTIME ()
- DATA()
- IŠTRAUKTI ()
- DATE_ADD()
- DATE_SUB()
- DATEDIFF()
- DATOS FORMATAS()
Išsamiai pažvelkime į kiekvieną datos funkciją, naudodami pavyzdžius. Užklausų rašymo pavyzdžiuose naudosime MySQL duomenų bazę.
Apsvarstykite, kad turime studentų lentelę su šiais duomenimis:
ID | vardas | DateTime_Birth | Miestas |
---|---|---|---|
1 | Mansi Shah | 2010-01-01 18:39:09 | Pune |
2 | Tejalas Vagas | 2010-03-04 05:13:19 val | Nasik |
3 | Sejal Kumari | 2010-05-01 10:31:07 | Mumbajus |
4 | Sonal Jain | 2010-09-09 17:17:07 | Šimla |
5 | Surili Maheshwari | 2010-07-10 20:45:18 val | Laiškas |
Kai kuriuose pavyzdžiuose naudosime šią lentelę.
1. DABAR ():
NOW () funkcija SQL pateiks dabartinės sistemos datą ir laiką.
Sintaksė:
SELECT NOW ();
Pavyzdys:
Parašykite užklausą, kad būtų rodoma esamos sistemos data ir laikas.
Užklausa:
mysql> SELECT NOW () AS Current_Date_Time;
Čia mes parašėme SELECT užklausą su funkcija DABAR () norėdami gauti dabartinę sistemos datą ir laiką. Current_Date_Time yra slapyvardis, skirtas išsaugoti datą ir laiką.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
Dabartinė_data_Laikas |
---|
2021-10-24 18:28:44 |
Data ir laikas, kada užklausa buvo įvykdyta sistemoje, yra 24th2021 m. spalio mėn. ir 18:28:44 val. Taigi jis rodomas kaip išvestis.
2. VARŠKĖ()
CURDATE () funkcija SQL pateiks dabartinės sistemos datą.
mašininis mokymasis ir tipai
Sintaksė:
SELECT CURDATE ();
Pavyzdys:
Parašykite užklausą, kad būtų rodoma esamos sistemos data.
Užklausa:
mysql> SELECT CURDATE () AS CurrentDate;
Čia mes parašėme SELECT užklausą su funkcija CURDATE (), kad gautume esamą sistemos datą. CurrentDate yra slapyvardis datai išsaugoti.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
Dabartinė data |
---|
2021-10-24 |
Data, kurią užklausa buvo įvykdyta sistemoje, yra 24th2021 m. spalio mėn. Taigi jis rodomas kaip išvestis.
3. CURTIME ()
CURTIME () funkcija SQL duos dabartinės sistemos laiką.
Sintaksė:
SELECT CURTIME ();
Pavyzdys:
Parašykite užklausą, kad būtų rodomas dabartinis sistemos laikas.
Užklausa:
mysql> SELECT CURTIME () AS CurrentTime;
Čia mes parašėme SELECT užklausą su funkcija CURTIME (), kad gautume esamą sistemos laiką. CurrentTime yra laiko saugojimo slapyvardis.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
Dabartinis laikas |
---|
18:49:07 |
Laikas, kada užklausa buvo įvykdyta sistemoje, yra 18:49:07. Taigi jis rodomas kaip išvestis.
4. DATA()
Naudodami SQL funkciją DATE () galite konkrečiai išskirti datą iš DATETIME duomenų tipo stulpelio.
Sintaksė:
SELECT DATE (DateTimeValue);
1 pavyzdys:
Parašykite užklausą, kad būtų rodoma data nuo nurodytos datos ir laiko, t. y. 2021-10-24 18:28:44.
Užklausa:
mysql> SELECT DATE ('2021-10-24 18:28:44') AS SHOW_DATE;
Čia mes parašėme SELECT užklausą su funkcija DATE (), kad gautume tik datą iš datos ir laiko parametro, perduoto funkcijai DATE (). SHOW_DATE yra slapyvardis datai išsaugoti.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
SHOW_DATE |
---|
2021-10-24 |
Nuo datos ir laiko parametro, pvz., „2021-10-24 18:28:44“, datos reikšmė yra 2021-10-24. Taigi jis rodomas kaip išvestis.
2 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija iš mokinio lentelės su data iš studento lentelės stulpelio DateTime_Birth.
Užklausa:
mysql> SELECT ID, Name, DATE(DateTime_Birth) AS Date_of_Birth, City FROM student;
Čia mes parašėme SELECT užklausą, kad gautume ID ir pavadinimą. Date_of_Birth yra DateTime_Birth pseudonimas. Naudojome Gimimo_data su funkcija DATE () norėdami gauti tik datą.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
ID | vardas | Gimimo data | Miestas |
---|---|---|---|
1 | Mansi Shah | 2010-01-01 | Pune |
2 | Tejalas Vagas | 2010-03-04 | Nasik |
3 | Sejal Kumari | 2010-05-01 | Mumbajus |
4 | Sonal Jain | 2010-09-09 | Šimla |
5 | Surili Maheshwari | 2010-07-10 | Laiškas |
Visi įrašai rodomi taip, kaip yra iš mokinio lentelės, išskyrus stulpelį DateTime_Birth. Gimimo_datos stulpelyje pagal reikalavimą rodoma tik data.
5. IŠTRAUKAS ()
Naudodami SQL funkciją EXTRACT() galime išgauti tam tikrą datos ir laiko dalį pagal mūsų reikalavimus: dieną, mėnesį, metus, dieną, valandą, minutę ir kt.
Sintaksė:
SELECT EXTRACT (PART FROM DATE / TIME);
1 pavyzdys:
Parašykite užklausą, kad būtų rodomi metai nuo nurodytos datos, t. y. 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT EXTRACT (YEAR FROM '2021-10-24') AS SHOW_YEAR;
Čia mes parašėme SELECT užklausą su funkcija EXTRACT (), kad gautume metus nuo nurodytos datos. SHOW_YEAR yra slapyvardis metams saugoti.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
SHOW_YEAR |
---|
2021 m |
„2021“ yra metai nurodytoje datoje. Taigi jis rodomas kaip išvestis.
2 pavyzdys:
Parašykite užklausą, kad būtų rodomas mėnuo nuo nurodytos datos, ty 24 dth2021 m. spalio mėn.
Užklausa:
java į json objektą
mysql> SELECT EXTRACT (MONTH FROM '2021-10-24') AS SHOW_MONTH;
Čia mes parašėme SELECT užklausą su funkcija EXTRACT (), kad gautume mėnesį nuo nurodytos datos. SHOW_MONTH yra slapyvardis mėnesiui saugoti.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
SHOW_MONTH |
---|
10 |
10thyra mėnesio reikšmė nurodytą dieną. Taigi jis rodomas kaip išvestis.
3 pavyzdys:
Parašykite užklausą, kad būtų rodoma diena nuo nurodytos datos, ty 24 dth2021 m. spalio mėn.
Užklausa:
mysql> SELECT EXTRACT (DAY FROM '2021-10-24') AS SHOW_DAY;
Čia mes parašėme SELECT užklausą su funkcija EXTRACT (), kad gautume dieną nuo nurodytos datos. SHOW_DAY yra slapyvardis dienai išsaugoti.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
SHOW_DAY |
---|
24 |
24thyra dienos reikšmė nurodytą dieną. Taigi jis rodomas kaip išvestis.
4 pavyzdys:
Parašykite užklausą, kad būtų rodoma valanda nuo nurodyto laiko, ty 19:10:43.
Užklausa:
mysql> SELECT EXTRACT (HOUR FROM '19:10:43') AS SHOW_HOUR;
Čia mes parašėme SELECT užklausą su funkcija EXTRACT (), kad gautume valandą nuo nurodyto laiko. SHOW_HOUR yra slapyvardis, skirtas saugoti valandos vertę.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
SHOW_HOUR |
---|
19 |
„19“ yra valandos reikšmė nurodytu laiku. Taigi jis rodomas kaip išvestis.
5 pavyzdys:
Parašykite užklausą, kad būtų rodoma minutė nuo nurodyto laiko, ty 19:10:43.
Užklausa:
programėlė
mysql> SELECT EXTRACT (MINUTE FROM '19:10:43') AS SHOW_MINUTE;
Čia mes parašėme SELECT užklausą su funkcija EXTRACT (), kad gautume minutės reikšmę nuo nurodyto laiko. SHOW_MINUTE yra minutės saugojimo slapyvardis.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
SHOW_MINUTE |
---|
10 |
„10“ yra minutės reikšmė nurodytu laiku. Taigi jis rodomas kaip išvestis.
6 pavyzdys:
Parašykite užklausą, kad būtų rodomos sekundės nuo nurodyto laiko, ty 19:10:43.
Užklausa:
mysql> SELECT EXTRACT (SECOND FROM '19:10:43') AS SHOW_SECOND;
Čia mes parašėme SELECT užklausą su funkcija EXTRACT (), kad gautume sekundžių reikšmę iš nurodyto laiko. SHOW_SECOND yra slapyvardis, skirtas saugoti sekundės reikšmę.
Atlikę aukščiau pateiktą užklausą, gavome tokią išvestį:
SHOW_SECOND |
---|
43 |
43 yra antra reikšmė per nurodytą laiką. Taigi jis rodomas kaip išvestis.
6. DATE_ADD()
Naudodami SQL funkciją DATE_ADD () prie nurodytos datos galime pridėti konkretų laiko intervalą.
Sintaksė:
SELECT DATE_ADD (DATE, INTERVAL VALUE Unit_to_be_added);
1 pavyzdys:
Parašykite užklausą, kad pridėtumėte 15 dienų intervalą prie nurodytos datos, ty 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_ADD () funkcija, kad pridėtume 15 dienų intervalą prie nurodytos datos. NEW_DATE yra slapyvardis, skirtas išsaugoti naujos datos vertę.
Gausite tokią išvestį:
NEW_DATE |
---|
2021-11-08 |
Prie 2021-10-24 pridėjus 15 dienų intervalą, nauja data yra 2021-11-08.
2 pavyzdys:
Parašykite užklausą, kad pridėtumėte 5 mėnesių intervalą prie nurodytos datos, ty 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_ADD () funkcija, kad pridėtume 5 mėnesių intervalą prie nurodytos datos. NEW_DATE yra slapyvardis, skirtas išsaugoti naujos datos vertę.
Gausite tokią išvestį:
NEW_DATE |
---|
2022-03-24 |
Prie 2021-10-24 pridėjus 5 mėnesių intervalą, nauja data yra 2022-03-24.
3 pavyzdys:
Parašykite užklausą, kad pridėtumėte 25 metų intervalą prie nurodytos datos, ty 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATE_ADD ('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_ADD () funkcija, kad pridėtume 25 metų intervalą prie nurodytos datos. NEW_DATE yra slapyvardis, skirtas išsaugoti naujos datos vertę.
Gausite tokią išvestį:
NEW_DATE |
---|
2046-10-24 |
Prie 2021-10-24 pridėjus 25 metų intervalą, nauja data yra 2046-10-24.
7. DATE_SUB()
Naudodami SQL funkciją DATE_SUB () galime pašalinti konkretų laiko intervalą nuo nurodytos datos.
Sintaksė:
SELECT DATE_SUB (DATE, INTERVAL VALUE Unit_to_be_subtracted);
1 pavyzdys:
Parašykite užklausą, kad pašalintumėte 25 metų intervalą nuo nurodytos datos, t.y. 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 25 YEAR) AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_SUB() funkcija, kad pašalintume 25 metų intervalą nuo nurodytos datos. NEW_DATE yra slapyvardis, skirtas išsaugoti naujos datos vertę.
Gausite tokią išvestį:
NEW_DATE |
---|
1996-10-24 |
Pašalinus 25 metų intervalą nuo 2021-10-24, nauja data yra 1996-10-24.
2 pavyzdys:
Parašykite užklausą, kad pašalintumėte 5 mėnesių intervalą nuo nurodytos datos, t.y. 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 5 MONTH) AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_SUB() funkcija, kad pašalintume 5 mėnesių intervalą nuo nurodytos datos. NEW_DATE yra slapyvardis, skirtas išsaugoti naujos datos vertę.
Gausite tokią išvestį:
NEW_DATE |
---|
2021-05-24 |
Pašalinus 5 mėnesių intervalą nuo 2021-10-24, nauja data yra 2021-05-24.
3 pavyzdys:
Parašykite užklausą, kad pašalintumėte 15 dienų intervalą nuo nurodytos datos, t. y. 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATE_SUB('2021-10-24', INTERVAL 15 DAY) AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_SUB() funkcija, kad pašalintume 15 dienų intervalą nuo nurodytos datos. NEW_DATE yra slapyvardis, skirtas išsaugoti naujos datos vertę.
Gausite tokią išvestį:
NEW_DATE |
---|
2021-10-09 |
Pašalinus 15 dienų intervalą nuo 2021-10-24, nauja data yra 2021-10-09.
mvc spyruokliniame karkase
8. DATEDIFF()
Naudojant funkciją DATEDIFF() SQL, bus pateiktas dienų skaičius, patenkantis tarp dviejų nurodytų datų.
Sintaksė:
SELECT DATEDIFF(Date1, Date2);
1 pavyzdys:
Parašykite užklausą, kad apskaičiuotumėte skirtumą tarp dviejų nurodytų datų, ty 24th2021 m. spalio mėn. ir 9 dth2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATEDIFF('2021-10-24', '2021-10-09') AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_DIFF() funkcija, kad gautume skirtumą tarp datų 2021-10-24 ir 2021-10-09. Number_of_Days yra slapyvardis, skirtas išsaugoti skirtumą pagal dienų skaičių.
Gausite tokią išvestį:
Dienų_skaičius |
---|
penkiolika |
Tarp datų 2021-10-24 ir 2021-10-09 yra 15 dienų skirtumas.
2 pavyzdys:
Parašykite užklausą, kad apskaičiuotumėte skirtumą tarp dviejų nurodytų datų, ty 5th2018 m. gegužės mėn. ir 5 dth2008 m. gegužės mėn.
Užklausa:
mysql> SELECT DATEDIFF ('2018-05-05', '2008-05-05') AS NEW_DATE;
Čia mes parašėme SELECT užklausą su DATE_DIFF () funkcija, kad gautume skirtumą tarp datų 2018-05-05 ir 2008-05-05. Number_of_Days yra slapyvardis, skirtas išsaugoti skirtumą pagal dienų skaičių.
Gausite tokią išvestį:
Dienų_skaičius |
---|
3652 |
Tarp datų 2018-05-05 ir 2008-05-05 yra 3652 dienų skirtumas.
9. DATE_FORMAT()
Naudodami SQL funkciją DATE_FORMAT () galime rodyti su data ar laiku susijusią informaciją gerai suformatuotu būdu.
Funkcijos DATE_FORMAT naudojimo lentelės stulpelyje sintaksė:
SELECT DATE_FORMAT (ColumnName, Expression) FROM Table Name;
ARBA
Konkrečios datos formatavimo sintaksė:
SELECT DATE_FORMAT (Date, Expression);
1 pavyzdys:
Parašykite užklausą, kad nurodyta data būtų rodoma tinkamai suformatuota, t. y. 24th2021 m. spalio mėn.
Užklausa:
mysql> SELECT DATE_FORMAT ('2021-10-24', '%W %D %M %Y') AS Formatted_Date;
Čia parašėme SELECT užklausą su DATE_FORMAT () funkcija, kad gautume datą 2021-10-24 formatuota forma. Formatted_Date yra slapyvardis, skirtas išsaugoti suformatuotą datą.
css – paryškintas
Gausite tokią išvestį:
Formatted_Data |
---|
2021 m. spalio 24 d., sekmadienis |
2021 m. spalio 24 d., sekmadienis, yra suformatuota 2021-10-24 data.
2 pavyzdys:
Parašykite užklausą, kad nurodyta data ir laikas būtų rodomi gerai suformatuotu būdu, t. y. 24th2021 m. spalio mėn. 22:30:17.
Užklausa:
mysql> SELECT DATE_FORMAT ('2021-10-24 22:30:17', '%W %D %M %Y %r') AS Formatted_DateTime;
Čia parašėme SELECT užklausą su DATE_FORMAT () funkcija, kad gautume datą ir laiką „2021-10-24 22:30:17“ formatuota forma. Formatted_DateTime yra slapyvardis, skirtas išsaugoti suformatuotą datą ir laiką.
Gausite tokią išvestį:
Formatted_DateTime |
---|
2021 m. spalio 24 d., sekmadienis, 22:30:17 |
2021 m. spalio 24 d., sekmadienis, 22:30:17 yra suformatuota data ir laikas 2021-10-24 22:30:17.
3 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa išsami informacija iš mokinio stulpelio su DateTime_Birth stulpeliu gerai suformatuotu būdu.
Užklausa:
mysql> SELECT ID, Name, DATE_FORMAT (DateTime_Birth, '%W %D %M %Y %r') AS Formatted_DateTime, City FROM student;
Čia mes parašėme SELECT užklausą su DATE_FORMAT () funkcija, kad gautume visų įrašų datą ir laiką formatuota forma. Formatted_DateTime yra slapyvardis, skirtas išsaugoti suformatuotą datą ir laiką.
Gausite tokią išvestį:
ID | vardas | Formatted_DateTime | Miestas |
---|---|---|---|
1 | Mansi Shah | 2010 m. sausio 1 d., penktadienis, 18:39:09 | Pune |
2 | Tejalas Vagas | 2010 m. kovo 4 d., ketvirtadienis, 05:13:19 | Nasik |
3 | Sejal Kumari | 2010 m. gegužės 1 d., šeštadienis, 10:31:07 | Mumbajus |
4 | Sonal Jain | 2010 m. rugsėjo 9 d., ketvirtadienis, 17:17:07 | Šimla |
5 | Surili Maheshwari | 2010 m. liepos 10 d., šeštadienis, 20:45:18 | Laiškas |
Visi įrašai rodomi taip, kaip yra iš mokinio lentelės, išskyrus stulpelį DateTime_Birth. Stulpelyje Formatted_DateTime rodoma tik data ir laikas, kaip reikalaujama.