DATO og DATETIME

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

r

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

  • CURTIME () – får gjeldende tid
  • NÅ () – får både dato og klokkeslett (I DATETIME format)
  • 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.

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *