Datoer og klokkeslett er ekstremt frustrerende datatyper OG SQL gjør dem ikke enklere å jobbe med enn andre språk. Mens dato og klokkeslett er faktisk helt forskjellige datatyper, de er ofte slått sammen til en datetime datatype. SQL datoer og tider alene er ganske enkle, selv om de krever en spesiell formatering. Imidlertid kan sammenslåing av de to være en av de mest smertefulle oppgavene du vil møte i dine tidlige år. En god tommelfingerregel er å bare bruke en tid og dato sammen når du absolutt må eller må i fremtiden. Jeg skal forklare hvorfor datoer og tider kompliserer ting på bare et minutt. Først, la oss se på hvor lett livet når du bare jobber med datoer.
Arbeide MED SQL Datoer
Vår» Brukere » Tabell:
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.
Eksempel
SELECT *FROM UsersWHERE member_since < '2011-12-25'
Resultat
id | brukernavn | første | siste | medlemssiden | 2 | 2011-12-8 | 2011-7-9 |
---|
ok, vi sa før 25.desember 2011, noe som betyr at dårlig hillary ikke er inkludert fordi hun er på den dagen. Al knapt gjort kutt, men gamle George var veien før vår cut off dato. Jeg antar at vi faktisk burde snakke om hva som skjedde. Opp TIL hvor member_since < ‘2011-12-25’, vet vi hva som gjorde. Vi kan sikkert gjette hva som skjer her, men jeg slår den døde hesten. Vi sjekker vår member_since kolonne for å se om det er mindre enn, <, vår dato, som ble skrevet i enkelt anførselstegn som ‘2011-12-25’. Ofte når googling for hjelp med datoer, ser du denne syntaksen referert til som ‘YYYY-MM-DD’, Hvor Y er for år, M er for måned,og D er for dag, åpenbart. Hver repetisjon er et symbol på et tomt tegnrom for det elementet. Så, du vil bare ha 2 sifre for måneden fordi det er fornuftig, og kanskje bryr du deg ikke om de første 2 tegnene i året. I stedet skriver du bare, YY for å få 11. Enkelt nok, på de fantastiske DATETIMEs
Bruke DATETIME I SQL
Vår Nye» Brukere » Tabell:
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 |
nå prøver vi å få alle våre medlemmer som logget inn før før 1: 00pm desember 24, 2011.
Eksempel
SELECT * FROM UsersWHERE last_login < '2011-12-24 13:00:00'
Resultat
id | brukernavn | første | siste | hillary | clinton | 2011-12-24 12:59:15 | 2 | 2011-12-24 11:53:25 |
---|
Dårlig George… Ok, nøyaktig samme syntaks som en siste med, bortsett fra at vi erstattet kolonnenavnet og brukte EN DATETIME-streng for å sammenligne mot. Datatypen DATETIME inneholder alle de samme elementene som DATATYPEN DATODATA pluss en tidsstreng. Vanligvis referert til som ‘YYYY-MM-DD HH: MM: SS’ Igjen, i enkle sitater og med et mellomrom som skiller datostrengen fra tidsstrengen, lager vi VÅR DATOSTRENG for sammenligning. Hillary og Al gjør begge kuttet fordi de logget inn før ‘2011-12-24 13: 00:00 ‘ kutt AV DATETIME. Det er mye lettere her enn det ser ut i praksis. Det er fordi VI legger INN DATETIME-strengen for hånd. SQL har NOEN DATO funksjoner du kan leke med som du kan erstatte vår streng med:
Viktige SQL DATO Funksjoner
MERK: SQL DATO funksjoner varierer sterkt PÅ TVERS AV SQL-versjoner. Dette Er MySQL.CURDATE() – får gjeldende dato
hvis Du ikke bruker MySQL, bør du vurdere å bytte. Bare tuller, slags, men ingen bekymringer, En enkel spørring Av Google vil hjelpe deg å finne de riktige SQL-funksjoner FOR SQL database.