datele și orele sunt tipuri de date extrem de frustrant și SQL nu le face mai ușor de a lucra cu decât alte limbi. În timp ce data și ora sunt de fapt tipuri de date complet diferite, ele sunt adesea îmbinate într-un tip de date datetime. Numai datele și orele SQL sunt destul de simple, chiar dacă necesită o formatare specială. Cu toate acestea, îmbinarea celor două poate fi una dintre cele mai dureroase SARCINI cu care vă veți confrunta în primii ani. O regulă bună de degetul mare este de a utiliza doar o dată și ora împreună atunci când aveți absolut nevoie sau va trebui să în viitor. Voi explica de ce datele și orele complică lucrurile în doar un minut. În primul rând, să ne uităm la viața cât de ușor atunci când pur și simplu lucrați cu date.
lucrul cu datele SQL
tabelul nostru „utilizatori” :
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.
exemplu
SELECT *FROM UsersWHERE member_since < '2011-12-25'
rezultat
id | nume utilizator | primul | ultimul | member_since |
---|---|---|---|---|
2 | internetcreator | al | Gore | 2011-12-8 | 3 | dontmesswithtexas | George | Bush | 2011-7-9 |
bine, am spus înainte de 25 decembrie 2011, ceea ce înseamnă că bietul Hillary nu este inclus pentru că este în acea zi. Al abia a reușit, dar bătrânul George era cu mult înainte de întâlnirea noastră. Cred că ar trebui să vorbim despre ce s-a întâmplat. Până unde member_since < ‘2011-12-25’, știm ce făceau. Am putea ghici ce se întâmplă aici, dar voi bate calul mort. Verificăm coloana member_since pentru a vedea dacă este mai mică decât, <, Data noastră, care a fost scrisă între ghilimele ca „2011-12-25”. Adesea, când căutați ajutor cu date, vedeți această sintaxă denumită ‘AAAA-LL-ZZ’, unde Y este pentru an, M este pentru lună și D este pentru zi, evident. Fiecare repetiție este un simbol al unui spațiu de caractere gol pentru acel element. Deci, vrei doar 2 cifre pentru luna pentru că are sens, și poate că nu vă pasă de primele 2 caractere ale anului. În schimb, scrieți doar, YY pentru a obține 11. Destul de ușor, pe minunat DATETIMEs
folosind DATETIME în SQL
noul nostru tabel „utilizatori” :
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 |
acum, încercăm să obținem toți membrii noștri care s-au conectat înainte înainte de 1:00PM 24 decembrie 2011.
exemplu
SELECT * FROM UsersWHERE last_login < '2011-12-24 13:00:00'
rezultat
id | nume utilizator | primul | ultimul | last_login |
---|---|---|---|---|
1 | ohbillnotagain | Hillary | Clinton | 2011-12-24 12:59:15 |
2 | internetcreator | al | Gore | 2011-12-24 11:53:25 |
poor George… bine, exact aceeași sintaxă ca ultima cu excepția am înlocuit numele coloanei și a folosit un șir DATETIME pentru a compara împotriva. Tipul de date DATETIME conține toate aceleași elemente ca tipul de DATE Data plus un șir de timp. Denumit în mod obișnuit ca ‘AAAA-LL-ZZ HH: MM: SS’ din nou, în citate unice și cu un spațiu care separă șirul de dată de șirul de timp, creăm șirul de dată pentru comparație. Hillary și al ambele face tăiat pentru că au conectat înainte de ‘2011-12-24 13: 00:00 ‘ taie DATETIME. Este mult mai ușor aici decât pare în practică. Asta pentru că am pus în șir DATETIME de mână. SQL are câteva funcții de DATE pe care le puteți juca cu care puteți înlocui șirul nostru cu:
funcții importante de date SQL
notă: funcțiile de date SQL diferă foarte mult între versiunile SQL. Acestea sunt MySQL.
- CURDATE() – primește data curentă
- CURTIME() – primește ora curentă
- acum () – primește atât Data, cât și ora (în format DATETIME)
dacă nu utilizați MySQL, luați în considerare comutarea. Doar glumesc, un fel de, dar nu vă faceți griji, o interogare simplă a Google vă va ajuta să găsiți funcțiile SQL potrivite pentru baza de date SQL.