A dátumok és időpontok fontosak, segítenek a dolgok rendezettségében és szerves részét képezik minden szoftveres működésnek.
A velük való hatékony együttműködés az adatbázisban néha zavarónak tűnhet, függetlenül attól, hogy a különböző időzónákon keresztül dolgozik-e, dátumok összeadásával / kivonásával és más műveletekkel.
Ismerje meg a rendelkezésre álló különféle MySQL funkciókat, amelyekkel egyszerűen kezelheti és kezelheti a dátumokat / időpontokat az adatbázisában.
Munka időzónákkal
A dolgok szabványosítása érdekében csak dátumokkal / időpontokkal szabad dolgozni az UTC időzónában. Minden alkalommal, amikor kapcsolatot létesít a MySQL adatbázissal, át kell állítania az időzónát UTC-re, amelyet a következő SQL utasítással lehet megtenni:
SET TIME_ZONE = '+0: 00'
Mivel az összes dátum mostantól az UTC-ben lesz elmentve, mindig tudja, hogy mivel dolgozik, egyszerűbbé és egyszerűbbé téve a dolgokat.
Ha szükséges, könnyen konvertálja az időzónát bármely dátum / időbélyeg értéket a kéznél
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:A PolyTime, a MakeUseOf új alkalmazása megkönnyíti az időzónák összehasonlítását az egész világon. Íme, mit tehet vele, és hogyan működik.
SELECT CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
Ennek eredményeként 2021-02-04 13:47:23 ami pontosan helyes. A három érv átadva CONVERT_TZ () az első a dátum / időbélyeg, amellyel elindul (az aktuális időhöz használja most ()), a második mindig az lesz '+0:00' mivel az összes dátum UTC-re van kényszerítve az adatbázisban, és az utolsó az az eltolás, amelyre a dátumot át akarjuk alakítani.
Dátumok összeadása / kivonása
Sokszor hozzá kell adni a dátumokat, vagy le kell vonni azokból, például ha egy héttel ezelőtti rekordokat kell visszakeresni, vagy ütemezzen valamit egy hónap múlva.
Szerencsére a MySQL kiváló DATE_ADD () és DATE_SUB () funkciók, amelyek rendkívül egyszerűvé teszik ezt a feladatot. Például kivonhat két hetet az aktuális dátumból az SQL utasítással:
SELECT DATE_SUB (most (), 2 hét intervallum);
Ha ehelyett három napot szeretne hozzáadni egy meglévő időbélyeghez, akkor a következőket kell használnia:
SELECT DATE_ADD ('2021-02-07 11:52:06', 3. nap intervallum);
Mindkét függvény ugyanúgy működik, az első argumentum az időbélyeg, amellyel elindul, a második argumentum pedig az összeadás vagy kivonás intervalluma. A második argumentum mindig ugyanabban van megadva, kezdve a szóval intervallum amelyet egy numerikus érték és maga az intervallum követ, amely a következők bármelyike lehet: másodperc, perc, óra, nap, hét, hónap, negyedév, év.
Egy másik példa: ha le akarta szerezni az elmúlt 34 percben bekövetkezett összes bejelentkezést, használhat egy SQL utasítást, például:
SELECT * FROM bejelentkezések WHERE login_date> = DATE_SUB (most (), 45 perces intervallum);
Mint látható, ez az összes rekordot lekérné a bejelentkezések táblázat, amelynek bejelentkezési dátuma meghaladja az aktuális időt, mínusz 45 perc, vagy más szavakkal, az elmúlt 45 perc.
Szerezzen különbséget a dátumok között
Néha meg kell kapnia, hogy mennyi idő telt el két dátum között. Könnyedén megismerheti 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 (most (), '2020-12-15');
A DATEDIFF A függvény két argumentumot vesz fel, mindkettő dátum / idő bélyegző, és megadja a közöttük lévő napok számát. A fenti példa a 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 megszerzéséhez a TO_SECONDS () A funkció jól jöhet, például:
SELECT TO_SECONDS (most ()) - TO_SECONDS ('2021-02-05 11:56:41');
Ez a két megadott dátum közötti másodpercek számát eredményezi.
Szegmensek kivonása az időpontokból
Különböző MySQL-funkciók vannak, amelyek lehetővé teszik az egyes szegmensek egyszerű kivonását 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');
ÓRA KIVÁLASZTÁSA (most ());
SELECT DAYOFYEAR ('2021-07-15 12:00:00');
A fenti SQL utasítások eredményeként 02, az aktuális óra, és 196 mivel szeptember 15-e az év 196. napja. Itt található az összes rendelkezésre álló dátumkivonási funkció, amelyek mindegyike csak egy argumentumot tartalmaz, a dátumot kivonva:
- MÁSODIK ()
- PERC()
- ÓRA ()
- NAP ()
- HET () - 0 - 52-es szám, amely meghatározza az évet az éven belül.
- HÓNAP()
- NEGYEDÉV () - 1–4. Szám, amely meghatározza az év negyedévét.
- YEAR ()
- DAYOFYEAR () - Az év napja (pl. Szeptember 15. = 196).
- LAST_DAY () - Az adott hónap utolsó napja.
- Dátum () - A dátum ÉÉÉÉ-HH-NN formátumban, idő nélkül.
- TIME () Az idő HH: II: SS formátumban dátum nélkül.
- TO_DAYS () - A napok száma A.D. 0 óta.
- TO_SECONDS () - A 0. ébr. Óta eltelt másodpercek száma.
- UNIX_TIMESTAMP () - A korszak (1970. január 1.) óta eltelt másodpercek száma
Például, ha esetleg csak azt a hónapot és évet kívánta letölteni, amelyet az összes felhasználó létrehozott, használhat egy SQL utasítást, például:
SELECT azonosító, MONTH (létrehozva_at), YEAR (létrehozva_at) FROM felhasználóktól;
Ez lekérné az összes rekordot a felhasználók táblázatot, és mutassa meg az összes felhasználó létrehozásának id # számát, hónapját és évét.
A rekordok csoportosítása dátumperiódus szerint
A dátumfüggvények egyik kiváló felhasználása a rekordok dátumperiódus szerinti csoportosítása CSOPORTOSÍT az SQL utasításaiban. Például, szeretné, ha a 2020-as összes megrendelés teljes összegét hónapok szerint csoportosítaná. Használhat egy SQL utasítást, például:
KIVÁLASZTÁS HÓNAP (létrehozva_at), SUM (összeg) MEGHATÁROZOTT HASZNÁLATOKBÓL '2020-01-01 00:00:00' ÉS '2020-12-31 23:59:59' KÖZÖTT CSOPORTBAN (created_at);
Ez lekérné a 2020-as évben leadott összes megrendelést, csoportosítaná őket a létrehozás hónapja szerint, és 12 rekordot adna vissza, amely az év minden hónapjában a teljes megrendelt összeget mutatja.
Felhívjuk figyelmét, hogy a jobb index teljesítmény érdekében mindig a legjobb elkerülni a dátumfüggvényeket, mint pl ÉV() az SQL utasítások WHERE záradékán belül, és ehelyett használja a KÖZÖTT üzemeltető a fenti példában látható módon.
Soha többé ne keverje össze a dátumokkal
A fenti ismeretek felhasználásával hatékonyan dolgozhat, fordíthat és hajthat végre műveleteket dátumokban és időkben, sokféle felhasználási esetben.
Ne felejtse el mindig az UTC-t használni, amikor a dátumokkal dolgozik az egyszerűség kedvéért, és használja a fenti tippeket a hatékony kezeléshez dátumokat a szoftveren belül, legyen szó egyszerű számítások elvégzéséről vagy dátum szerinti csoportosítással időszakok.
Ha még nem ismeri az SQL-t, mindenképpen ellenőrizze ezeket alapvető SQL parancsok hogy javítsa az SQL használatát.
Ez az útmutató megvizsgálja a szakmai jelentés elemeit, és áttekinti a dokumentum strukturálását, stílusát és véglegesítését a Microsoft Word programban.
- Meg nem határozott
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!
Még egy lépés…!
Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.