Kiválasztása rekordokat időbeli jellemzők

feladat
Kiválasztani kívánt rekordok idejüket jellemzőit.

döntés
Használjon feltétele az idő vagy a dátum a WHERE záradékot. Lehetőség van közvetlenül összehasonlítani az oszlop értékeit ismert értékekre. És akkor lehet alkalmazni, az értékek az oszlop funkció átalakítani őket egy kényelmesebb formátumban ellenőrzés, például akkor a hónap (), hogy ellenőrizze a időpontját havonta.

megbeszélés
Egy nagy része a tanulás, hogyan kell dolgozni az értékek a bemutatott példában az időpontját, hogy a dátum és az idő értékeket. Az ugyanezt a technikát lehet használni a WHERE átmeneti korlátozásokat vezessenek be a kiválasztott bejegyzést a lekérdezést. Például, kiválaszthatja kapcsolatos feljegyzések dátumokat megelőzően meghatározott belül adott tartományban megfelelő konkrét értékeket a hónap vagy nap után.

Összehasonlítva egymással dátumait
A következő lekérdezések date_val táblabejegyzések időszakhoz kapcsolódó akár 1900 vagy 1900-as évek:

Ha dolgozik egy korábbi 3.23.9, MySQL verzió, a KÖZÖTT nyilatkozat nem mindig működnek megfelelően a sztring literálok dátumokat nem formázza-ISO.


Például előfordulhat, hogy nem, amikor végez ilyen lekérdezés:

SELECT D date_val ahol d KÖZÖTT „1960/03/01” ÉS „1960/03/15”;
Ha ez történik, próbálja átalakítani a dátumot ISO formátumban:

SELECT D date_val ahol d KÖZÖTT „1960/03/01” ÉS „1960/03/15”;

Azt is átírni a kifejezést két különböző összehasonlítás:

SELECT D date_val ahol d> = '1960/03/01' és D SELECT D date_val ahol d> = DATE_SUB (CURDATE (), egymástól 6 év);

Megjegyezzük, hogy mind az utasítások ahol a dátum oszlopot nap eltekintve - csak ő maga maradt az összehasonlító operátor.

Ha az oszlop indexelt, ez általában egy formája kérés obrabatyvaetsyav MySQL a leghatékonyabb. Írhatnánk WHERE záradék másik út, ami logikailag egyenértékű az előző, de lassabb:

AHOL DATE_ADD (d, egymástól 6 hónap),> = CURDATE ();

Ebben az esetben, az oszlop d használjuk a kifejezést, hogy a kivonjuk a kiszámítására és kifejezésére ellenőrizni minden sor van - kiderül, hogy az index nem igényelt.

Néha ez nem azonnal világos, hogyan kell fogalmaznia az összehasonlítás, így a dátum oszlopot találta magát elszigetelt egyik oldalon a összehasonlító operátor. Például ez a WHERE záradékot használ összehasonlítás csak egy része az oszlop dátumok:


Ahol egész (d)> = 1987 évben (d) = '1987-01-01' és évenként (d) = '1987-01-01' és D = '1987-01-01' és D = „1987- 01-01 „és d

Kapcsolódó cikkek