logo

MySQL datuma un laika funkcijas

Apstrāde datums un laiks dati MySQL ir būtiski daudzām datu bāzes operācijām, jo ​​īpaši, ja runa ir par laika zīmogu apstrādi, plānojot uzdevumus vai ģenerējot uz laiku. MySQL nodrošina dažādas datuma un laika funkcijas, kas palīdz lietotājiem strādāt ar datuma vērtībām, veikt aprēķinus un pēc vajadzības formatēt tos.

java saišu saraksts

Šīs funkcijas ļauj izstrādātājiem veikt aprēķinus, lai iegūtu noteiktas datuma daļas vai pat formatētu izvadi, lai nodrošinātu labāku lasāmību. Šajā rakstā mēs izpētīsim visbiežāk izmantotās MySQL datuma funkcijas, izskaidrosim to sintaksi, sniedzam piemērus un sniegsim norādījumus, kā tās efektīvi izmantot.

Izpratne par MySQL datuma un laika datu tipiem

Strādājot ar datumiem MySQL, tas var būt sarežģīti iesācējiem, jo ​​īpaši tāpēc, ka datuma formātam datu bāzē ir jāatbilst ievades datu formātam ievietošanas laikā. Daudzos gadījumos tā vietā, lai izmantotu vienkāršu datumu, mums var būt nepieciešams saglabāt gan datumu, gan laiku atkarībā no lietošanas gadījuma. Šī ir vieta, kur DATETIME un TIMESTAMP tiek izmantoti datu veidi.



MySQL datuma un laika vērtību glabāšanai nodrošina šādus datu tipus:

1. DATUMS :

  • Formāts :YYYY-MM-DD
  • Izmanto tikai datuma (gads mēnesis un diena) glabāšanai bez laika komponentiem.

2. DATETIME :

  • Formāts :YYYY-MM-DD HH:MM:SS
  • Saglabā gan datumu, gan laiku, padarot to noderīgu, ja nepieciešams tvert noteiktu laiku kopā ar datumu.

3. LAIKZĪMOGS :

  • Formāts :YYYY-MM-DD HH:MM:SS
  • Līdzīgi kāDATETIMEbetTIMESTAMPietver arī laika joslu atbalstu. Tas automātiski tiek atjaunināts uz pašreizējo laikspiedolu, kad ieraksts tiek modificēts, padarot to ideāli piemērotu ierakstu izmaiņu izsekošanai laika gaitā.

4. GADS :

  • Formāts :YYYYvaiYY
  • Izmanto tikai gada glabāšanai, kas var būt noderīgs lietojumprogrammām, kurās ir nepieciešams tikai gads, piemēram, dzimšanas gadu vai fiskālo gadu izsekošanai.

MySQL datuma un laika funkcijas

Tagad iedziļināsimies MySQL datuma funkcijās, kuras varat izmantot, lai efektīvi manipulētu un vaicātu datuma un laika datus.

1. TAGAD() — iegūstiet pašreizējo datumu un laiku

The TAGAD () funkcija izgūst pašreizējo datumu un laiku GGGG-MM-DD HH:MI:SS formātā.

Vaicājums:

SELECT NOW();  

Izvade:

tagad metodes izvades attēls' title=

2. CURDATE() — iegūt tikai pašreizējo datumu

Ja mums ir nepieciešams tikai pašreizējais datums bez laika daļas, ko varam izmantot CURDATE() kas atgriež datumu YYYY-MM-DD formātā.

Vaicājums:

SELECT CURDATE();  

Izvade: 

IZEJA2' loading='lazy' title=

3. CURTIME() — iegūstiet tikai pašreizējo laiku

Funkcija CURTIME() atgriež pašreizējo laiku HH:MI:SS formātā, izņemot datumu.

Vaicājums:

SELECT CURTIME();  

Izvade: 

IZEJA3' loading='lazy' title=

4. DATE() — izņemiet datuma daļu no DATETIME vērtības

TheDATE()funkcija no a izvelk tikai datuma daļuDATETIMEvaiTIMESTAMPvērtību, atmetot laiku.

Piemērs: Par galdu sauc users :

Id Vārds Dzimšanas laiks
4120Prakse1996-09-26 16:44:15.581

Vaicājums:

SELECT Name DATE(BirthTime)   
AS BirthDate FROM Test;

Izvade:

Vārds Dzimšanas datums
Prakse1996-09-26

5. EXTRACT() — izvilkt noteikta datuma daļas

EXTRACT()tiek izmantots, lai iegūtu noteiktas datuma daļas, piemēram, dienu, mēnesi vai gadu. Šī funkcija var būt īpaši noderīga, analizējot vai salīdzinot dažādas datuma daļas. Var apsvērt vairākas vienības, bet tiek izmantotas tikai dažas, piemēram, MIKROSEKUDES OTRĀ MINŪTE STUNDA DIENA NEDĒĻA MĒNESIS Ceturkšņa GADS utt. Un “datums” ir derīga datuma izteiksme.

Sintakse:

EXTRACT(vienība NO datuma);

Vaicājuma izvilkšanas diena:

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

Izvade: 

Vārds Dzimšanas diena
Prakse26

Vaicājuma izvilkšanas gads:

maven instalēt
SELECT Name Extract(YEAR FROM BirthTime)  
AS BirthYear FROM Test;

Izvade: 

Vārds Dzimšanas gads
Prakse1996. gads

Sekunžu izvilkšanas vaicājums:

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

Izvade:

Vārds DzimšanaOtrā
Prakse581

6. DATE_ADD() — pievienojiet datumam intervālus

The DATE_ADD() funkcija ļauj datumam vai datumam pievienot laika intervālus (piem., dienas, mēneši, gadi).DATETIMEvērtību.

Sintakse:

DATE_ADD(datuma INTERVAL izteiksmes veids);

Piemērs: Zemāk esošajai tabulai ar nosaukumu " Pārbaude '

Id Vārds Dzimšanas laiks
4120Prakse1996-09-26 16:44:15.581

Vaicājums uz Pievienojiet 1 gadu datumam

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

Izvade:

Vārds Dzimšanas laiksModificēts
Prakse1997-09-26 16:44:15.581

Vaicājums, lai datumam pievienotu 30 dienas

pilna papildinātāja patiesības tabula
SELECT Name DATE_ADD(BirthTime   
INTERVAL 30 DAY) AS BirthDayModified FROM Test;

Izvade:

Vārds BirthDayModified
Prakse1996-10-26 16:44:15.581

Vaicājums, lai datumam pievienotu 4 stundas

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

Izvade: 

Vārds DzimšanaOtrā
Prakse1996-10-26 20:44:15.581

7. DATEDIFF() - Atrodiet atšķirību starp diviem datumiem

Šī funkcija atgriež dienu skaitu starp diviem datumiem. 

Sintakse:

DATEDIFF(intervaldate1 date2);

intervāls - minūte/stunda/mēnesis/gads utt

date1 & date2- datuma/laika izteiksme

Vaicājums uz Atrodiet atšķirību starp diviem datumiem

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

Izvade: 

DateDiff

8. DATE_FORMAT() — datuma un laika formāta

DATE_FORMAT() ļauj mums formatēt a DATE DATETIME vai LAIKZĪMOGS vērtību pielāgotā formātā, izmantojot vietturus.

sakārtots masīvu saraksts java

Sintakse:

DATE_FORMAT(datuma formāts);

datums ir derīgs datums, un formāts norāda datuma/laika izvades formātu. Var izmantot šādus formātus:

  • %a — saīsināts nedēļas dienas nosaukums (sv.–sestdien)
  • %b — saīsināts mēneša nosaukums (janvāris–decembris)
  • %c mēnesis (0–12)
  • %D — mēneša diena ar angļu valodas sufiksu (0. 1. 2. 3.)
  • %d — skaitļu mēneša diena (00-31)
  • %e-mēneša diena (0-31)
  • %f-mikrosekundes (000000-999999)
  • % H-stunda (00-23)
  • %h-stunda (01-12)
  • %I stunda (01-12)
  • %i minūtes (00-59)
  • %j — gada diena (001-366)
  • %k stunda (0-23)
  • %l-stunda (1-12)
  • %M Month nosaukums (janvāris–decembris)
  • %m mēnesis (00-12)
  • %p-AM vai PM
  • %r Laiks 12 stundas (hh:mm: ss, kam seko AM vai PM)
  • %S sekundes (00-59)
  • %s sekundes (00-59)
  • % T laiks 24 stundas (hh:mm: ss)
  • %U nedēļa (00-53), kur svētdiena ir nedēļas pirmā diena
  • %u nedēļa (00–53), kur pirmdiena ir nedēļas pirmā diena
  • %V nedēļa (01-53), kur svētdiena ir pirmā nedēļas diena, ko izmanto kopā ar %X
  • %v Nedēļa (01-53), kur pirmdiena ir pirmā nedēļas diena, ko izmanto kopā ar %x
  • %W — nedēļas dienas nosaukums (svētdiena–sestdiena)
  • %w — nedēļas diena (0 = svētdiena, 6 = sestdiena)
  • %X gads nedēļai, kurā svētdiena ir nedēļas pirmā diena, ar %V lietoti četri cipari
  • %x gads nedēļai, kurā pirmdiena ir nedēļas pirmā diena, četri cipari tiek lietoti kopā ar %v
  • %Y gada ciparu četri cipari
  • %y-Year ciparu divi cipari

Vaicājums, lai formatētu datumu

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

Izvade:

Formatted_date
Ceturtdiena, 10.04.2025

Paraugprakse darbam ar datumu un laiku programmā MySQL

1. Vienmēr izmantojiet pareizos datuma formātus

Ievietojot vai atjauninot datumus, pārliecinieties, ka ievērojat MySQL paredzētos formātus (YYYY-MM-DD YYYY-MM-DD HH:MI:SS). Tas nodrošina, ka jūsu vaicājumi atgriež gaidītos rezultātus bez kļūdām.

2. Laika joslas apsvērumi, izmantojot TIMESTAMP

KamērDATETIMEnesaglabā laika joslas informācijuTIMESTAMPdara. Ja jūsu lietojumprogramma ir jutīga pret laika joslu (piemēram, starptautiskās lietojumprogrammās), apsveriet iespēju izmantotTIMESTAMPdatuma un laika laukiem, kuros jāņem vērā dažādas laika joslas.

3. Datumu diapazonu apstrāde vaicājumos

Lai filtrētu datus, pamatojoties uz datumu diapazoniem (piemēram, izgūtu visus ierakstus no konkrēta mēneša vai gada), pārliecinieties, ka izmantojat pareizu datumu salīdzinājumuWHEREklauzula. Piemērs:

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

4. Veiktspējas apsvērumi

Strādājot ar datuma un laika funkcijām, īpaši lielās datu kopās, ņemiet vērā ietekmi uz veiktspēju. Izvairieties no tādu funkciju izmantošanas kāNOW()vaiCURDATE()sadaļāWHEREklauzulu, jo tie var palēnināt vaicājumus, strādājot ar lielām tabulām.

Secinājums

MySQL datuma un laika funkcijas ir būtiski instrumenti apstrāde un manipulējot laika dati jūsu datu bāzēs. Apgūstot tādas funkcijas kāNOW() CURDATE() DATE_ADD() DATEDIFF()unDATE_FORMAT()jūs varat viegli strādāt ar uz laiku balstīti aprēķini salīdzinājumiem un formātos . Galvenais, lai šīs funkcijas varētu efektīvi izmantot, ir saprast to sintaksi, kad un kā tās izmantot, un to ietekmi uz veiktspēju lielās datu kopās. Izmantojot šīs zināšanas, jūs varēsiet izveidot efektīvākus, precīzus un mērogojamus vaicājumus visām jūsu ar datumu un laiku saistītajām vajadzībām pakalpojumā MySQL.

Izveidojiet viktorīnu