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ó a
DATETIMEdeTIMESTAMPidő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:

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:

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:

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ő |
|---|---|---|
| 4120 | Gyakorlat | 1996-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 |
|---|---|
| Gyakorlat | 1996-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 |
|---|---|
| Gyakorlat | 26 |
Kivonat lekérdezés éve:
SELECT Name Extract(YEAR FROM BirthTime)
AS BirthYear FROM Test;
Kimenet:
| Név | Születési Év |
|---|---|
| Gyakorlat | 1996 |
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 |
|---|---|
| Gyakorlat | 581 |
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ő |
|---|---|---|
| 4120 | Gyakorlat | 1996-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 |
|---|---|
| Gyakorlat | 1997-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 |
|---|---|
| Gyakorlat | 1996-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 |
|---|---|
| Gyakorlat | 1996-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 javadate1 & 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.