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

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ó a DATETIME de TIMESTAMP idő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 : YYYY vagy YY
  • 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

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.

Lekérdezés:

 SELECT CURDATE();   

Kimenet: 

KIMENET2

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

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

A DATE() függvény csak a dátum részt vonja ki a DATETIME vagy TIMESTAMP é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 vagy DATETIME é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

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íg DATETIME nem tárol időzóna információkat TIMESTAMP nem. Ha az alkalmazás időzónaérzékeny (például nemzetközi alkalmazásokban), fontolja meg a használatát TIMESTAMP dá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 a WHERE zá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 pl NOW() vagy CURDATE() a WHERE zá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 pl NOW() CURDATE() DATE_ADD() DATEDIFF() és DATE_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