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:

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:

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:

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 |
|---|---|---|
| 4120 | Prakse | 1996-09-26 16:44:15.581 |
Vaicājums:
SELECT Name DATE(BirthTime)
AS BirthDate FROM Test;
Izvade:
| Vārds | Dzimšanas datums |
|---|---|
| Prakse | 1996-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 |
|---|---|
| Prakse | 26 |
Vaicājuma izvilkšanas gads:
maven instalēt
SELECT Name Extract(YEAR FROM BirthTime)
AS BirthYear FROM Test;
Izvade:
| Vārds | Dzimšanas gads |
|---|---|
| Prakse | 1996. gads |
Sekunžu izvilkšanas vaicājums:
SELECT Name Extract(SECOND FROM
BirthTime) AS BirthSecond FROM Test;
Izvade:
| Vārds | DzimšanaOtrā |
|---|---|
| Prakse | 581 |
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 |
|---|---|---|
| 4120 | Prakse | 1996-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 |
|---|---|
| Prakse | 1997-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 |
|---|---|
| Prakse | 1996-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ā |
|---|---|
| Prakse | 1996-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.