MySQL datos ir laiko funkcijos

MySQL datos ir laiko funkcijos

Tvarkymas data ir laikas duomenys MySQL yra būtini daugeliui duomenų bazės operacijų, ypač kai reikia tvarkyti laiko žymes, planuoti užduotis arba generuoti pagal laiką. „MySQL“ teikia įvairias datos ir laiko funkcijas, kurios padeda vartotojams dirbti su datos reikšmėmis atlikti skaičiavimus ir pagal poreikį jas formatuoti.

Šios funkcijos leidžia kūrėjams atlikti skaičiavimus, išgauti konkrečias datos dalis arba net suformatuoti išvestį, kad būtų geriau skaitoma. Šiame straipsnyje išnagrinėsime dažniausiai naudojamas MySQL datos funkcijas, paaiškinsime jų sintaksę, pateiksime pavyzdžių ir paaiškinsime, kaip jas efektyviai naudoti.

MySQL datos ir laiko duomenų tipų supratimas

Darbas su datomis MySQL gali būti sudėtingas pradedantiesiems, ypač todėl, kad datos formatas duomenų bazėje turi atitikti įvesties duomenų formatą įterpiant. Daugeliu atvejų, užuot naudoję paprastą datą, gali tekti išsaugoti ir datą, ir laiką, atsižvelgiant į naudojimo atvejį. Čia yra DATETIME ir TIMESTAMP pradeda veikti duomenų tipai.

MySQL pateikia šiuos duomenų tipus datos ir laiko reikšmėms saugoti:

1. DATA :

  • Formatas : YYYY-MM-DD
  • Naudojamas tik datai (metai mėnuo ir diena) saugoti be jokio laiko komponento.

2. DATETIME :

  • Formatas : YYYY-MM-DD HH:MM:SS
  • Išsaugo ir datą, ir laiką, todėl tai naudinga, kai reikia užfiksuoti konkretų laiką kartu su data.

3. TIMESTAMP :

  • Formatas : YYYY-MM-DD HH:MM:SS
  • Panašus į DATETIME bet TIMESTAMP taip pat apima laiko juostos palaikymą. Jis automatiškai atnaujinamas iki dabartinės laiko žymos, kai įrašas pakeičiamas, todėl puikiai tinka stebėti įrašų pokyčius laikui bėgant.

4. METAI :

  • Formatas : YYYY arba YY
  • Naudojamas tik metams saugoti, o tai gali būti naudinga programoms, kuriose reikalingi tik metai, pvz., gimimo ar fiskalinių metų stebėjimas.

MySQL datos ir laiko funkcijos

Dabar pasinerkime į MySQL datos funkcijas, kurias galite naudoti norėdami veiksmingai valdyti datos ir laiko duomenis ir pateikti jų užklausas.

1. DABAR () – gauti dabartinę datą ir laiką

The DABAR () funkcija nuskaito dabartinę datą ir laiką YYYY-MM-DD HH:MI:SS formatu.

Užklausa:

 SELECT NOW();   

Išvestis:

dabar metodas išvesties vaizdas

2. CURDATE() – gauti tik dabartinę datą

Jei mums reikia tik dabartinės datos be laiko dalies, kurią galime naudoti CURDATE() kuri grąžina datą YYYY-MM-DD formatu.

Užklausa:

 SELECT CURDATE();   

Išvestis: 

IŠVADA2

3. CURTIME() – gauti tik dabartinį laiką

Funkcija CURTIME() grąžina esamą laiką HH:MI:SS formatu, neįskaitant datos.

Užklausa:

 SELECT CURTIME();   

Išvestis: 

IŠVADA3

4. DATE() – ištraukite datos dalį iš DATETIME reikšmės

The DATE() funkcija iš a ištraukia tik datos dalį DATETIME arba TIMESTAMP vertė atmetus laiką.

Pavyzdys: Dėl stalo, vadinamo users :

Id Vardas Gimimo laikas
4120 Praktika 1996-09-26 16:44:15.581

Užklausa:

 SELECT Name DATE(BirthTime)    
AS BirthDate FROM Test;

Išvestis:

Vardas Gimimo data
Praktika 1996-09-26

5. EXTRACT() – Ištraukite konkrečios datos dalis

EXTRACT() naudojamas tam tikroms datos dalims, pvz., dienai mėnesiui ar metams, išgauti. Ši funkcija gali būti ypač naudinga analizuojant arba lyginant skirtingas datos dalis. Galima apsvarstyti keletą vienetų, tačiau naudojami tik kai kurie, pvz MIKROSEKUNDĖ ANTRA MINUTĖ VALANDA DIENA Savaitė MĖNESIS KETVIRTIS METAI ir kt. O „data“ yra tinkama datos išraiška.

Sintaksė:

IŠRAŠAS (vienetas NUO datos);

Užklausos ištraukimo diena:

 SELECT Name Extract(DAY FROM    
BirthTime) AS BirthDay FROM Test;

Išvestis: 

Vardas Gimtadienis
Praktika 26

Užklausos ištraukimo metai:

 SELECT Name Extract(YEAR FROM BirthTime)   
AS BirthYear FROM Test;

Išvestis: 

Vardas Gimimo metai
Praktika 1996 m

Užklausa sekundėms išgauti:

 SELECT Name Extract(SECOND FROM    
BirthTime) AS BirthSecond FROM Test;

Išvestis:

Vardas GimimasAntras
Praktika 581

6. DATE_ADD() – pridėti intervalus prie datos

The DATE_ADD() funkcija leidžia prie datos pridėti laiko intervalus (pvz., dienas, mėnesius, metus). DATETIME vertė.

Sintaksė:

DATE_ADD(datos INTERVAL galiojimo tipas);

Pavyzdys: Žemiau esančioje lentelėje pavadinimu „ Testas '

Id Vardas Gimimo laikas
4120 Praktika 1996-09-26 16:44:15.581

Užklausa į Pridėkite 1 metus prie datos

 SELECT Name DATE_ADD(BirthTime INTERVAL    
1 YEAR) AS BirthTimeModified FROM Test;

Išvestis:

Vardas Modifikuotas gimimo laikas
Praktika 1997-09-26 16:44:15.581

Užklausa pridėti 30 dienų prie datos

 SELECT Name DATE_ADD(BirthTime    
INTERVAL 30 DAY) AS BirthDayModified FROM Test;

Išvestis:

Vardas BirthDayModified
Praktika 1996-10-26 16:44:15.581

Užklausa, jei norite pridėti 4 valandas prie datos

 SELECT Name DATE_ADD(BirthTime INTERVAL   
4 HOUR) AS BirthHourModified FROM Test;

Išvestis: 

Vardas GimimasAntras
Praktika 1996-10-26 20:44:15.581

7. DATEDIFF() - Raskite skirtumą tarp dviejų datų

Ši funkcija grąžina dienų skaičių tarp dviejų datų. 

Sintaksė:

DATEDIFF(intervaldate1 data2);

intervalas - minutė / valanda / mėnuo / metai ir tt

date1 & date2 – datos/laiko išraiška

Užklausa į Raskite skirtumą tarp dviejų datų

 SELECT DATEDIFF(day '2017-01-13' '2017-01-03') AS DateDiff;   

Išvestis: 

DateDiff

8. DATE_FORMAT() – formatavimo data ir laikas

DATE_FORMAT() leidžia formatuoti a DATA DATETIME arba TIMESTAMP vertę į tinkintą formatą, naudojant vietos rezervavimo ženklus.

Sintaksė:

DATE_FORMAT(datos formatas);

data yra tinkama data, o formatas nurodo datos / laiko išvesties formatą. Galima naudoti šiuos formatus:

  • %a – sutrumpintas savaitės dienos pavadinimas (sekmadienis–šeštadienis)
  • %b – sutrumpintas mėnesio pavadinimas (sausis–gruodis)
  • %c – skaitinis mėnuo (0–12)
  • %D – mėnesio diena su angliška priesaga (0, 1, 2, 3)
  • %d – skaitinė mėnesio diena (00–31)
  • %e-mėnesio diena (0–31)
  • %f-mikrosekundės (000000-999999)
  • %h-valanda (00-23)
  • %h-valanda (01-12)
  • %I valanda (01-12)
  • %i minučių skaitiniai (00-59)
  • %j – metų diena (001-366)
  • %k valandos (0-23)
  • %l val. (1-12)
  • %M mėnesio pavadinimas (sausis–gruodis)
  • %m mėnuo skaitinis (00-12)
  • %p-AM arba PM
  • %r – laikas 12 valandų (hh:mm: ss, po to AM arba PM)
  • %S sekundės (00-59)
  • %s sekundžių (00-59)
  • % T laikas 24 valandos (hh:mm: ss)
  • %U savaitė (00-53), kur sekmadienis yra pirmoji savaitės diena
  • %u-Savaitė (00–53), kai pirmadienis yra pirmoji savaitės diena
  • %V-Savaitė (01-53), kur sekmadienis yra pirmoji savaitės diena, naudojama su %X
  • %v-Savaitė (01-53), kur pirmadienis yra pirmoji savaitės diena, naudojama kartu su %x
  • %W – savaitės dienos pavadinimas (sekmadienis–šeštadienis)
  • %w – savaitės diena (0 = sekmadienis 6 = šeštadienis)
  • %X metai savaitei, kai sekmadienis yra pirmoji savaitės diena, keturi skaitmenys, naudojami su %V
  • %x-Metai savaitei, kai pirmadienis yra pirmoji savaitės diena, keturi skaitmenys naudojami su %v
  • % Y-metų keturių skaitmenų
  • %y-Year skaitiniai du skaitmenys

Datos formatavimo užklausa

 SELECT DATE_FORMAT('2025-04-10 12:34:56' '%W %M %d %Y') AS formatted_date;  

Išvestis:

Formatted_date
2025 m. balandžio 10 d., ketvirtadienis

Geriausia darbo su data ir laiku „MySQL“ praktika

1. Visada naudokite tinkamus datos formatus

Įterpdami arba atnaujindami datas įsitikinkite, kad laikotės laukiamų MySQL formatų ( YYYY-MM-DD YYYY-MM-DD HH:MI:SS ). Tai užtikrina, kad jūsų užklausos pateikia laukiamus rezultatus be klaidų.

2. Laiko juostos svarstymai naudojant TIMESTAMP

Nors DATETIME nesaugo laiko juostos informacijos TIMESTAMP daro. Jei jūsų programa yra jautri laiko juostai (pvz., tarptautinėse programose), apsvarstykite galimybę naudoti TIMESTAMP datos ir laiko laukams, kuriuose reikia atsižvelgti į skirtingas laiko juostas.

3. Datų intervalų tvarkymas užklausose

Norėdami filtruoti duomenis pagal dienų sekas (pvz., gauti visus įrašus iš konkretaus mėnesio ar metų), įsitikinkite, kad naudojate tinkamus datų palyginimus WHERE sąlyga. Pavyzdys:

 SELECT * FROM orders   
WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';

4. Veiklos svarstymai

Dirbdami su datos ir laiko funkcijomis, ypač dideliuose duomenų rinkiniuose, atkreipkite dėmesį į poveikį našumui. Venkite naudoti tokias funkcijas kaip NOW() arba CURDATE() esančiame WHERE sąlygą, nes jos gali sulėtinti užklausas dirbant su didelėmis lentelėmis.

Išvada

MySQL datos ir laiko funkcijos yra būtini įrankiai tvarkymas ir manipuliuojant laikinus duomenis savo duomenų bazėse. Įvaldydami tokias funkcijas kaip NOW() CURDATE() DATE_ADD() DATEDIFF() ir DATE_FORMAT() galite lengvai dirbti laiku pagrįsti skaičiavimai palyginimai ir formatus . Norint efektyviai naudotis šiomis funkcijomis, svarbu suprasti jų sintaksę, kada ir kaip jas naudoti, ir jų poveikį dideliuose duomenų rinkiniuose. Turėdami šias žinias galėsite kurti efektyvesnes tikslias ir keičiamo dydžio užklausas, atitinkančias visus su data ir laiku susijusius MySQL poreikius.

Sukurti viktoriną