dato og DATETIME

datoer og tidspunkter er ekstremt frustrerende datatyper og ikke gør dem nemmere at arbejde med end andre sprog. Mens dato og klokkeslæt faktisk er helt forskellige datatyper, de flettes ofte sammen til en datetime-datatype. Datoer og tidspunkter alene er ret enkle, selvom de kræver en særlig formatering. Men sammenlægning af de to kan være en af de mest smertefulde opgaver, du vil stå over for i dine tidlige år. En god tommelfingerregel er kun at bruge et tidspunkt og en dato sammen, når du absolut har brug for eller bliver nødt til i fremtiden. Jeg forklarer, hvorfor datoer og tidspunkter komplicerer tingene på bare et minut. Lad os først se på, hvor let livet er, når du bare arbejder med datoer.

arbejde med datoerne

vores” brugere ” tabel:

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 brugernavn første sidste Medlem siden
2 internetcreator al Gore 2011-12-8
3 dontmessmed emner George bush 2011-7-9

okay, vi sagde før 25.december 2011, hvilket betyder, at dårlig Hillary ikke er inkluderet, fordi hun er den dag. Al lavede næppe snittet, men gamle George var langt før vores afskæringsdato. Jeg formoder, at vi faktisk skal tale om, hvad der skete. Op til hvor member_since < ‘2011-12-25’, vi ved, hvad der gjorde. Vi kunne nok gætte, hvad der foregår her, men jeg slår den døde hest. Vi tjekker vores member_since-kolonne for at se, om den er mindre end, <, vores dato, som blev skrevet i enkelt citater som ‘2011-12-25’. Ofte når googling om hjælp med datoer, du ser denne syntaks benævnt ‘ÅÅÅÅ-MM-DD’, hvor Y er for året, M er for måned, og D er for dag, naturligvis. Hver gentagelse er et symbol på et tomt tegnrum for det pågældende element. Så du vil kun have 2 cifre i måneden, fordi det giver mening, og måske er du ligeglad med de første 2 tegn i året. I stedet skriver du bare, YY for at få 11. Nemt nok, på de vidunderlige DATETIMEs

ved hjælp af DATETIME i KVL

vores nye” brugere ” bord:

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

nu forsøger vi at få alle vores medlemmer, der er logget ind før før 1:00pm December 24, 2011.

eksempel

SELECT * FROM UsersWHERE last_login < '2011-12-24 13:00:00'

resultat

id brugernavn første sidste last_login
1 ohbillnotagain Hillary Clinton 2011-12-24 12:59:15
2 internetcreator al Gore 2011-12-24 11:53:25

dårlig George… okay, nøjagtig den samme syntaks som en sidste med undtagen vi erstattede kolonnenavnet og brugte en DATETIME-streng til at sammenligne med. Datatypen DATETIME indeholder alle de samme elementer som DATODATATYPEN plus en tidsstreng. Almindeligvis refereret som ‘ÅÅÅÅ-MM-DD HH: MM: SS’ igen, i enkelt citater og med et mellemrum, der adskiller datostrengen fra tidsstrengen, opretter vi vores datostreng til sammenligning. Hillary og Al gør begge skåret, fordi de loggede ind før ‘2011-12-24 13: 00:00 ‘ skær DATETIME af. Det er meget lettere her end det ser ud i praksis. Det er fordi vi lægger DATETIME-strengen i hånden. Du kan erstatte vores streng med:

vigtige DATOFUNKTIONER

Bemærk: DATOFUNKTIONERNE varierer meget på tværs af versionerne. Det er Myskl.

  • CURDATE() – får den aktuelle dato
  • CURTIME() – får den aktuelle tid
  • nu() – får både dato og klokkeslæt (i DATETIME-format)

Hvis du ikke bruger Curtime, kan du overveje at skifte. Bare sjov, slags, men ingen bekymringer, en simpel forespørgsel fra Google hjælper dig med at finde de rigtige funktioner til din database.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *