sarcină
Doriți să selectați înregistrările în caracteristicile lor de timp.
decizie
Utilizați o condiție pentru ora sau data în clauza WHERE. Este posibil să se compare direct valorile din coloana de valori cunoscute. Și puteți aplica la valorile funcției de coloană pentru a le converti într-un format mai convenabil pentru inspecție, de exemplu, puteți utiliza luna () pentru a verifica datele pe lună.
discuție
O mare parte a învăța cum să lucreze cu valorile exemplul ilustrat, datele care afișează data și ora valorile. Aceleași tehnici pot fi utilizate în clauza WHERE pentru a impune restricții temporare privind intrarea selectată de interogare. De exemplu, puteți selecta înregistrările referitoare la datele specificate în prealabil în intervalul specific sau care corespund valorilor specifice ale lunii sau ziua.
Comparând cu fiecare alte date
Următoarele interogări sunt intrări de tabel date_val legate de perioada de până la 1900 sau 1900 de ani:
Dacă lucrați cu o mai devreme decât 3.23.9, versiunea MySQL, BETWEEN declarația poate nu funcționează întotdeauna corect cu un sir de caractere datele nu au format ISO.
De exemplu, acesta poate să nu reușească atunci când se efectuează o astfel de interogare:
SELECT d FROM date_val unde d între '1960-3-1' și '1960-3-15';
Dacă se întâmplă acest lucru, încercați să transforme o dată în format ISO:
SELECT d FROM date_val unde d între '1960-03-01' și '1960-03-15';
Puteți rescrie, de asemenea, expresia folosind două comparații distincte:
SELECT d FROM WHERE date_val d> = '1960-03-01' AND d SELECT d FROM WHERE date_val d> = DATE_SUB (CURDATE (), INTERVAL 6 AN);
Rețineți că, în ceea ce privește instrucțiunile de unde coloana dată este D în afară - numai el a rămas operatorului de comparație.
În cazul în care coloana este indexat, aceasta este, de obicei, o formă de cerere obrabatyvaetsyav MySQL este cel mai eficient. Ar putea fi scris clauza WHERE într-un alt mod, care este logic echivalentă cu cea anterioară, dar este mai lent:
UNDE DATE_ADD (d, INTERVAL 6 LUNI)> = CURDATE ();
În acest caz, coloana d este utilizat în expresia, care este extras pentru a calcula și exprima verifica fiecare linie este - se dovedește că indicele nu este revendicat.
Uneori nu este imediat clar cum să reformuleze comparația, astfel încât coloana dată sa găsit izolată pe o parte a operatorului de comparație. De exemplu, această clauză WHERE utilizează comparație doar o parte a coloanei de date:
UNDE AN (d)> = 1987 ANUL (d) = '1987-01-01' AND YEAR (d) = '1987-01-01' AND d = '1987-01-01' AND d = „1987- 01-01 „și d