logo

MySQL dátum és idő függvények

Kezelés dátum és idő A MySQL-ben lévő adatok sok adatbázis-művelethez nélkülözhetetlenek, különösen, ha időbélyegek kezeléséről van szó, ütemezési feladatokról vagy időalapú generálásról. A MySQL számos dátum- és időfüggvényt biztosít, amelyek segítenek a felhasználóknak a dátumértékekkel való munkavégzésben számítások elvégzésében és szükség szerinti formázásában.

Ezek a funkciók lehetővé teszik a fejlesztők számára, hogy számításokat hajtsanak végre a dátum bizonyos részeiből, vagy akár formázzák a kimenetet a jobb olvashatóság érdekében. Ebben a cikkben megvizsgáljuk a leggyakrabban használt MySQL dátumfüggvényeket, elmagyarázzuk a szintaxisukat, példákat adunk, és végigvezetjük a hatékony használatukon.

A MySQL dátum és idő adattípusainak megértése

Amikor a dátumokkal dolgozik a MySQL-ben, ez trükkös lehet a kezdők számára, különösen azért, mert az adatbázisban lévő dátum formátumának meg kell egyeznie a beszúrás során a bemeneti adatok formátumával. Sok esetben ahelyett, hogy csak egy egyszerű dátumot használnánk, a használati esettől függően előfordulhat, hogy a dátumot és az időt is tárolnunk kell. Itt van a DATETIME és TIMESTAMP adattípusok jönnek szóba.



A MySQL a következő adattípusokat biztosítja a dátum és idő értékek tárolására:

1. DÁTUM :

  • Formátum :YYYY-MM-DD
  • Csak a dátum (év hónap és nap) tárolására szolgál, időkomponens nélkül.

2. DATETIME :

  • Formátum :YYYY-MM-DD HH:MM:SS
  • Tárolja a dátumot és az időt is, így hasznos lehet, ha konkrét időpontokat kell rögzíteni a dátummal együtt.

3. IDŐBÉLYEG :

  • Formátum :YYYY-MM-DD HH:MM:SS
  • Hasonló aDATETIMEdeTIMESTAMPidőzóna támogatást is tartalmaz. A rekord módosítása esetén automatikusan frissül az aktuális időbélyegzőre, így ideális a rekordok időbeli változásainak nyomon követésére.

4. ÉV :

  • Formátum :YYYYvagyYY
  • Csak az év tárolására szolgál, ami hasznos lehet olyan alkalmazásokban, ahol csak az évre van szükség, például a születési évek vagy a pénzügyi évek nyomon követésére.

MySQL dátum és idő függvények

Most nézzük meg a MySQL dátumfüggvényeit, amelyek segítségével hatékonyan kezelheti és lekérdezheti a dátum- és időadatokat.

1. MOST()- Aktuális dátum és idő lekérése

A JELENLEG() funkció lekéri az aktuális dátumot és időt ÉÉÉÉ-HH-NN ÓÓ:MI:SS formátum.

Lekérdezés:

SELECT NOW();  

Kimenet:

most módszer kimeneti kép' title=

2. CURDATE() - Csak aktuális dátum megjelenítése

Ha csak az aktuális dátumra van szükségünk a használható időrész nélkül CURDATE() amely visszaadja a dátumot YYYY-MM-DD formátum.

rendezd a tömblistát java-ban

Lekérdezés:

SELECT CURDATE();  

Kimenet: 

KIMENET2' loading='lazy' title=

3. CURTIME() - Csak aktuális idő lekérése

A CURTIME() függvény az aktuális időt adja vissza HH:MI:SS formátumban a dátum nélkül.

Lekérdezés:

SELECT CURTIME();  

Kimenet: 

KIMENET3' loading='lazy' title=

4. DATE() – A dátum rész kibontása egy DATETIME értékből

ADATE()függvény csak a dátum részt vonja ki aDATETIMEvagyTIMESTAMPérték elvetve az időt.

Példa: nevű asztalhoz users :

Id Név Születési idő
4120Gyakorlat1996-09-26 16:44:15.581

Lekérdezés:

SELECT Name DATE(BirthTime)   
AS BirthDate FROM Test;

Kimenet:

Név Születési dátum
Gyakorlat1996-09-26

5. EXTRACT() - Specifikus dátumrészek kibontása

EXTRACT()a dátum bizonyos részei, például a nap hónap vagy év kinyerésére szolgál. Ez a funkció különösen hasznos lehet egy dátum különböző részeinek elemzésekor vagy összehasonlításakor. Több egység is szóba jöhet, de csak néhányat használnak, mint pl MIKROSZEKUNDAD MÁSODPERC ÓRA NAP HÉT HÓ NEGYEDÉV stb. És a „dátum” egy érvényes dátum kifejezés.

Szintaxis:

EXTRACT(egység FROM dátum);

Lekérdezés kivonatolási napja:

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

Kimenet: 

Név Születésnap
Gyakorlat26

Kivonat lekérdezés éve:

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

Kimenet: 

Név Születési Év
Gyakorlat1996

Lekérdezés a másodpercek kivonásához:

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

Kimenet:

Név SzületésMásodik
Gyakorlat581

6. DATE_ADD() - Időközök hozzáadása a dátumhoz

A DATE_ADD() funkció lehetővé teszi időintervallumok (pl. napok hónapok) hozzáadását egy dátumhoz vagyDATETIMEérték.

Szintaxis:

DATE_ADD(dátum INTERVAL expr típus);

Példa: Az alábbi táblázathoz Teszt '

Id Név Születési idő
4120Gyakorlat1996-09-26 16:44:15.581

Lekérdezés Adjon hozzá 1 évet egy dátumhoz

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

Kimenet:

Név Születési időMódosítva
Gyakorlat1997-09-26 16:44:15.581

Lekérdezés 30 nap hozzáadásához egy dátumhoz

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

Kimenet:

Név BirthDayModified
Gyakorlat1996-10-26 16:44:15.581

Lekérdezés 4 óra hozzáadásához egy dátumhoz

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

Kimenet: 

Név SzületésMásodik
Gyakorlat1996-10-26 20:44:15.581

7. DATEDIFF() - Keresse meg a különbséget két dátum között

Ez a függvény a két dátum közötti napok számát adja vissza. 

Szintaxis:

DATEDIFF(intervaldate1 date2);

intervallum - perc/óra/hónap/év stb

rekurziós java

date1 & date2- dátum/idő kifejezés

Lekérdezés Találja meg a különbséget két dátum között

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

Kimenet: 

DateDiff

8. DATE_FORMAT() - Dátum és idő formázása

A DATE_FORMAT() lehetővé teszi, hogy a DÁTUM DATETIME vagy IDŐBÉLYEG értékét egyéni formátumba állítja be helyőrzők használatával.

Szintaxis:

DATE_FORMAT(dátumformátum);

a dátum érvényes dátum, a formátum pedig a dátum/idő kimeneti formátumát határozza meg. A használható formátumok a következők:

  • %a – A hétköznapok rövidített neve (V-Szo)
  • %b – A hónap rövidített neve (január-dec.)
  • %c-hónap numerikus (0-12)
  • %D - A hónap napja angol utótaggal (0. 1. 2. 3.)
  • %d – a hónap numerikus napja (00-31)
  • %e-A hónap numerikus napja (0-31)
  • %f-mikroszekundum (000000-999999)
  • %H-Hour (00-23)
  • %h-Óra (01-12)
  • %I óra (01-12)
  • %i-perc numerikus (00-59)
  • %j-Az év napja (001-366)
  • %k óra (0-23)
  • %l-óra (1-12)
  • %M-Hónap név (január-december)
  • %m-Hónap numerikus (00-12)
  • %p-PM vagy PM
  • %r-Idő 12 óra (óó:pp: ss, majd AM vagy PM)
  • %S másodperc (00-59)
  • %s-másodperc (00-59)
  • %T-idő 24 óra (óó:pp: ss)
  • %U-hét (00-53), ahol a vasárnap a hét első napja
  • %u-hét (00-53), ahol a hétfő a hét első napja
  • %V-hét (01-53), ahol a vasárnap a hét első napja, amelyet %X-szel használunk
  • %v-Week (01-53), ahol a hétfő a hét első napja, amelyet %x-szel használunk
  • %W-Hétnap neve (vasárnap-szombat)
  • %w – a hét napja (0=vasárnap 6=szombat)
  • %X-Év arra a hétre, ahol a vasárnap a hét első napja, négy számjegy a %V-vel együtt
  • %x-Év arra a hétre, ahol a hétfő a hét első napja, négy számjegy a %v-vel együtt
  • %Y-év numerikus négy számjegy
  • %y-Year numerikus két számjegy

Lekérdezés a dátum formázásához

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

Kimenet:

Formázott_dátum
2025. április 10. csütörtök

Bevált gyakorlatok a dátum és idő használatához a MySQL-ben

1. Mindig használja a megfelelő dátumformátumokat

A dátumok beszúrásakor vagy frissítésekor ügyeljen arra, hogy kövesse a MySQL elvárt formátumait (YYYY-MM-DD YYYY-MM-DD HH:MI:SS). Ez biztosítja, hogy a lekérdezések hiba nélkül adják vissza a várt eredményeket.

2. Időzóna szempontok a TIMESTAMP segítségével

MígDATETIMEnem tárol időzóna információkatTIMESTAMPnem. Ha az alkalmazás időzónaérzékeny (például nemzetközi alkalmazásokban), fontolja meg a használatátTIMESTAMPdátum-idő mezőkhöz, amelyeknek figyelembe kell venniük a különböző időzónákat.

3. Dátumtartományok kezelése a lekérdezésekben

Az adatok dátumtartományok alapján történő szűréséhez (például egy adott hónap vagy év összes rekordjának lekéréséhez) ügyeljen arra, hogy megfelelő dátum-összehasonlításokat használjon aWHEREzáradék. Példa:

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

4. Teljesítmény szempontjai

Amikor dátum- és időfüggvényekkel dolgozik, különösen nagy adatkészleteknél, ügyeljen a teljesítményre gyakorolt ​​hatásra. Kerülje az olyan funkciók használatát, mint plNOW()vagyCURDATE()aWHEREzáradékot, mivel lelassíthatják a lekérdezéseket nagy táblák kezelésekor.

Következtetés

A MySQL dátum- és időfüggvényei elengedhetetlen eszközei kezelés és manipulálva időbeli adatok az adatbázisokban. Olyan funkciók elsajátításával, mint plNOW() CURDATE() DATE_ADD() DATEDIFF()ésDATE_FORMAT()könnyen dolgozhat vele időalapú számítások összehasonlítások és formátumok . E függvények hatékony használatának kulcsa az, hogy megértsük a szintaxisukat, mikor és hogyan kell használni őket, valamint a nagy adatkészletek teljesítményére gyakorolt ​​hatásukat. Ezzel a tudással hatékonyabb, pontos és skálázható lekérdezéseket tud készíteni minden dátummal és idővel kapcsolatos igényéhez a MySQL-ben.

Kvíz létrehozása