A dátumok és időpontok fontosak, segítenek rendszerezni a dolgokat, és szerves részét képezik minden szoftverműveletnek.
A velük való hatékony együttműködés az adatbázison belül néha zavarosnak tűnhet, legyen szó akár a különböző időzónák közötti működésről, dátumok hozzáadásáról / kivonásáról és egyéb műveletekről.
Ismerje meg a különböző MySQL funkciókat, amelyekkel könnyen kezelheti és kezelheti a dátumokat / időket az adatbázisban.
Munka az időzónákkal
A dolgok szabványosítása érdekében mindig csak UTC időzóna szerinti dátumokkal / időkkel dolgozzon. Minden alkalommal, amikor kapcsolatot létesít a MySQL adatbázissal, kapcsolja át az időzónát UTC -re, amelyet a következő SQL utasítással tehet meg:
SET TIME_ZONE = '+0:00'
Mivel most minden dátum UTC -ben lesz mentve, mindig tudja, hogy mivel dolgozik, így egyszerűbbé és egyszerűbbé teszi a dolgokat.
az internet maga a fájdalom angolul
Ha szükséges, könnyen megteheti konvertálja az időzónát bármely dátum / időbélyeg értékét a praktikus CONVERT_TZ () MySQL függvény. Először ismernie kell az eltolást, például Észak -Amerika nyugati partján a PST UTC -08: 00, így használhatja:
SELECT CONVERT_TZ('2021-02-04 21:47:23', '+0:00', '-8:00');
Ennek eredménye 2021-02-04 13:47:23 ami pontosan helyes. A három érv átadásra került CONVERT_TZ () először az a dátum / időbélyeg, amellyel kezdi (használja most () az aktuális időhöz), a második mindig az lesz '+0: 00' mivel minden dátum UTC -re kényszerül az adatbázisban, és az utolsó az eltolás, amelyre a dátumot szeretnénk konvertálni.
Dátumok összeadása / kivonása
Sokszor hozzá kell adni vagy kivonni a dátumokat, például ha egy héttel ezelőtti rekordokat kell lekérni, vagy egy hónap múlva be kell ütemezni valamit.
Szerencsére a MySQL rendelkezik kiváló tulajdonságokkal DATE_ADD () és DATE_SUB () funkciók rendkívül megkönnyítik ezt a feladatot. Például kivonhat két hetet az aktuális dátumból az SQL utasítással:
SELECT DATE_SUB(now(), interval 2 week);
Ha ehelyett három napot szeretne hozzáadni egy meglévő időbélyeghez, akkor a következőt használja:
SELECT DATE_ADD('2021-02-07 11:52:06', interval 3 day);
Mindkét függvény ugyanúgy működik, az első argumentum a kezdő időbélyeg, a második argumentum pedig az összeadás vagy kivonás intervalluma. A második argumentum mindig ugyanolyan formátumú, mint a szó intervallum utána egy számérték és maga az intervallum, amely lehet a következők bármelyike: másodperc, perc, óra, nap, hét, hónap, negyedév, év.
Egy másik példában, ha le szeretné kérni az összes bejelentkezést, amely az elmúlt 34 percben történt, használhat egy SQL utasítást, például:
SELECT * FROM logins WHERE login_date >= DATE_SUB(now(), interval 45 minute);
Amint láthatja, ez minden rekordot lekér a bejelentkezéseket táblázat, amelynek bejelentkezési dátuma nagyobb, mint a jelenlegi idő, mínusz 45 perc, vagy más szóval, az elmúlt 45 perc.
Különbség a dátumok között
Néha meg kell kapnia, mennyi idő telt el két dátum között. Könnyen lekérheti a két különböző dátum közötti napok számát a DATEDIFF függvény, például az alábbi SQL utasítás:
SELECT DATEDIFF(now(), '2020-12-15');
Az DATEDIFF függvény két argumentumot tartalmaz, mindkettő dátum / időbélyeg, és megadja a köztük lévő napok számát. A fenti példa 2020. december 15 -től napjainkig eltelt napok számát mutatja.
A két dátum közötti másodpercek számának megtekintéséhez a TO_SECONDS () A funkció jól jöhet, például:
SELECT TO_SECONDS(now()) - TO_SECONDS('2021-02-05 11:56:41');
Ez azt eredményezi, hogy a megadott dátumok között hány másodperc van.
Szegmensek kivonása a dátumokból
Számos MySQL -funkció létezik, amelyek lehetővé teszik bizonyos szegmensek egyszerű kinyerését a dátumokból, például ha csak a hónapot, az év napját vagy az órát szeretné. Íme néhány példa az ilyen funkciókra:
SELECT MONTH('2021-02-11 15:27:52');
SELECT HOUR(now());
SELECT DAYOFYEAR('2021-07-15 12:00:00');
A fenti SQL utasítások azt eredményeznék 02 , az aktuális óra, és 196 mivel szeptember 15 -e az év 196. napja. Íme az összes rendelkezésre álló dátumkivonási funkció listája, amelyek mindegyike csak egy argumentumot tartalmaz, a dátumot a következőből kell kinyerni:
- SECOND()
- MINUTE()
- HOUR()
- DAY()
- WEEK() - Number 0 - 52 defining the week within the year.
- MONTH()
- QUARTER() - Number 1 - 4 defining the quarter of the year.
- YEAR()
- DAYOFYEAR() - The day of the year (eg. Sept 15th = 196).
- LAST_DAY() - The last day in the given month.
- DATE() - The date in YYYY-MM-DD format without the time.
- TIME() The time in HH:II:SS format without the date.
- TO_DAYS() - The number of days since A.D. 0.
- TO_SECONDS() - The number of seconds since A.D. 0.
- UNIX_TIMESTAMP() - The number of seconds since the epoch (Jan 1st, 1970)
Ha például csak az összes felhasználó létrehozásának hónapját és évét akarta lekérni, akkor használhat egy SQL utasítást, például:
SELECT id, MONTH(created_at), YEAR(created_at) FROM users;
Ez lekérné az összes rekordot a felhasználók táblázatot, és mutassa meg az azonosítószámot, a hónapot és az évet, amikor minden felhasználó létrejött.
A rekordok csoportosítása dátumidőszak szerint
A dátumfüggvények egyik kiváló használata a rekordok dátumidőszak szerinti csoportosítása CSOPORTOSÍT az SQL utasításaiban. Például lehet, hogy le szeretné húzni a 2020 -as megrendelések teljes összegét hónapok szerint csoportosítva. Használhat SQL utasítást, például:
SELECT MONTH(created_at), SUM(amount) FROM orders WHERE created_at BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59' GROUP BY MONTH(created_at);
Ez lekérné a 2020 -ban leadott összes rendelést, csoportosítaná őket a létrehozásuk hónapja szerint, és 12 rekordot adna vissza, amelyek az év minden hónapjában megrendelt teljes összeget mutatják.
Kérjük, vegye figyelembe, hogy az index jobb teljesítménye érdekében mindig jobb elkerülni a dátumfüggvények használatát, mint pl ÉV() az SQL utasítások WHERE záradékán belül, és használja a KÖZÖTT operátor a fenti példában látható módon.
Soha ne tévesszen meg újra dátumokat
A fenti ismeretek segítségével most hatékonyan dolgozhat, fordíthat és végezhet műveleteket dátumokban és időpontokban, sokféle használati esetben.
Ne felejtse el, hogy az egyszerűség kedvéért mindig használja az UTC -t, ha dátumokkal dolgozik, és használja a fenti tippeket a dátumok hatékony kezeléséhez a szoftverben, legyen szó egyszerű számítások elvégzéséről vagy dátumperiódusok szerint csoportosított jelentésekről.
Ha még nem ismeri az SQL -t, nézze meg ezeket alapvető SQL parancsok hogy javítsa az SQL használatát.
Részvény Részvény Csipog Email Professzionális jelentések és dokumentumok létrehozása a Microsoft Word alkalmazásbanEz az útmutató megvizsgálja a professzionális jelentés elemeit, és áttekinti a dokumentum strukturálását, stílusát és véglegesítését a Microsoft Word programban.
Olvassa tovább Kapcsolódó témák A szerzőről Matt Dizak(18 cikk megjelent) Továbbiak Matt Dizak -tólIratkozzon fel hírlevelünkre
Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!
Feliratkozáshoz kattintson ide