DATE and DATETIME

a dátumok és az idők rendkívül frusztráló adattípusok, és az SQL nem teszi őket könnyebbé, mint más nyelveken. Míg a dátum és az idő valójában teljesen más adattípusok, gyakran egyesítik őket egy datetime adattípusba. Az SQL dátumok és idők önmagukban elég egyszerűek, még akkor is, ha speciális formázást igényelnek. A kettő összevonása azonban az egyik legfájdalmasabb feladat, amellyel a korai években szembesül. Egy jó ökölszabály, hogy csak akkor használja az időt és a dátumot együtt, amikor feltétlenül szükség van, vagy szükség lesz a jövőben. Elmagyarázom, hogy a dátumok és az idők miért bonyolítják a dolgokat egy perc alatt. Először nézzük meg, milyen könnyű az élet, ha egyszerűen csak dátumokkal dolgozik.

az SQL dátumokkal való munka

“felhasználók” táblánk:

id username first last member_since
1 ohBillNotAgain Hillary Clinton 2011-12-25
2 internetCreator Al Gore 2011-12-8
3 dontMessWithTexas George Bush 2011-7-9

Let’s try to get all of our members before December 25, 2011. Példa

SELECT *FROM UsersWHERE member_since < '2011-12-25'

Eredmény

id username első utolsó member_since
2 internetCreator Al Gore 2011-12-8
3 dontMessWithTexas George Bush 2011-7-9

– Jól van, mondtuk KORÁBBAN, December 25, 2011, ami azt jelenti, hogy a szegény Hillary nem tartalmazza, mert ő azon a napon. Al alig tette meg a vágást, de az öreg George jóval a levágási dátumunk előtt volt. Azt hiszem, beszélnünk kellene arról, ami történt. Akár ahol member_since < ‘2011-12-25’, tudjuk, mit csinálnak. Talán kitalálhatnánk, mi folyik itt, de legyőzöm a halott lovat. Ellenőrizzük tag_since oszlop, hogy ha ez kevesebb, mint, <, a dátum, amelyet írt egyetlen idézetek, mint “2011-12-25”. Gyakran, amikor googling segítséget dátumokat, látod ezt a szintaxist nevezik “YYYY-MM-DD”, ahol Y az év, M a hónap, D pedig a nap, nyilvánvalóan. Minden ismétlés az elem üres karakterterének szimbóluma. Tehát csak 2 számjegyet akarsz havonta, mert ennek van értelme, és talán nem érdekel az év első 2 karaktere. Ehelyett csak írni, YY, hogy 11. Elég egyszerű, rá a csodálatos DATETIMEs

segítségével DATETIME SQL

az új “felhasználók” tábla:

id username first last last_login
1 ohBillNotAgain Hillary Clinton 2011-12-24 12:59:15
2 internetCreator Al Gore 2011-12-24 11:53:25
3 dontMessWithTexas George Bush 2011-12-24 16:24:17

most megpróbáljuk megszerezni az összes tagunkat, akik 2011.December 24. előtt bejelentkeztek. Példa

SELECT * FROM UsersWHERE last_login < '2011-12-24 13:00:00'

Eredmény

id username első utolsó last_login
1 ohBillNotAgain Hillary Clinton 2011-12-24 12:59:15
2 internetCreator Al Gore 2011-12-24 11:53:25

szegény George… rendben, pontosan ugyanaz a szintaxis, mint az utolsó, azzal a különbséggel, hogy kicseréltük az oszlop nevét, és egy DATETIME karakterláncot használtunk összehasonlításra. A DATETIME adattípus ugyanazokat az elemeket tartalmazza, mint a dátum adattípus plusz egy idő karakterlánc. Gyakran hivatkoznak “éééé-hh-nn HH: MM: SS” ismét, egyetlen idézetben, és egy helyet elválasztó dátum string az idő string, hozunk létre a dátum string összehasonlítás. Hillary és Al mindketten azért vágnak, mert 2011-12-24 13:00 előtt jelentkeztek be:00 ‘ cut off DATETIME. Itt sokkal könnyebb, mint a gyakorlatban. Ez azért van, mert a DATETIME karakterláncot kézzel helyezzük el. SQL néhány DÁTUM funkciók a játék körül, hogy cserélje ki az a húr:

Fontos SQL DÁTUM Funkciók

Megjegyzés: SQL DÁTUM funkciók nagyban különböznek át SQL változatban. Ezek MySQL.

  • CURDATE() – megkapja az aktuális dátumot
  • CURTIME () – megkapja az aktuális időt
  • NOW () – megkapja mind a dátumot ,mind az időt (DATETIME formátumban)

ha nem használja a MySQL-t, fontolja meg a váltást. Csak viccelek, egyfajta, de ne aggódj, a Google egyszerű lekérdezése segít megtalálni a megfelelő SQL funkciókat az SQL adatbázishoz.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük