Dates and times and times are extremely turhauttavaa tietotyypit ja SQL doesn ’ t make them any easer to work with than other languages. Vaikka päivämäärä ja aika ovat itse asiassa täysin erilaisia tietotyyppejä, ne yhdistetään usein datetime-tietotyypiksi. SQL päivämäärät ja ajat yksin ovat melko yksinkertaisia, vaikka ne vaativat erityistä muotoilua. Näiden kahden yhdistäminen voi kuitenkin olla yksi tuskallisimmista tehtävistä, joita joudut kohtaamaan varhaisvuosinasi. Hyvä nyrkkisääntö on käyttää yhteistä aikaa ja treffejä vain silloin, kun siihen on ehdottomasti tarvetta tai tulee tarve tulevaisuudessa. Selitän hetken kuluttua, miksi päivämäärät ja ajat mutkistavat asioita. Ensimmäinen, katsotaanpa, kuinka helppoa elämä, kun yksinkertaisesti työskennellä päivämäärät.
työskentely SQL-päivämäärien kanssa
meidän” käyttäjät ” – Taulukkomme:
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.
esimerkki
SELECT *FROM UsersWHERE member_since < '2011-12-25'
tulos
id | käyttäjätunnus | ensimmäinen | viimeinen | member_since | 2 | internetcreator | al | Gore |
---|---|---|---|---|
3 | dontmesswithtexas | George | Bush |
alright, sanoimme ennen 25.joulukuuta 2011, eli köyhä Hillary ei ole mukana, koska hän on sinä päivänä. Al selvisi hädin tuskin, mutta vanha George oli paljon ennen treffejämme. Meidän pitäisi puhua tapahtuneesta. Aina siihen asti, kun member_since < ”2011-12-25”, tiedetään mitä tehtiin. Voisimme varmaan arvata, mitä täällä tapahtuu, mutta minä päihitän kuolleen hevosen. Tarkistamme member_since-sarakkeestamme, onko se pienempi kuin, <, päiväyksemme, joka kirjoitettiin yksittäisissä lainauksissa nimellä ”2011-12-25”. Usein kun googlaat apua päivämäärien kanssa, näet tämän syntaksin, jota kutsutaan nimellä ”YYYY-MM-DD”, jossa Y on vuosi, M on kuukausi ja D on päivä, tietenkin. Jokainen toisto on kyseisen elementin tyhjän merkkiavaruuden symboli. Niin, haluat vain 2 numeroa kuukaudessa, koska se on järkevää, ja ehkä et välitä ensimmäinen 2 merkkiä vuoden. Sen sijaan vain kirjoittaa, YY saada 11. Easy enough, Upo the wonderful DATETIMEs
Using DATETIME in SQL
our New ”Users” Table:
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 |
nyt yritämme saada kaikki jäsenemme, jotka ovat kirjautuneet sisään ennen 1:00 joulukuuta 24, 2011.
esimerkki
SELECT * FROM UsersWHERE last_login < '2011-12-24 13:00:00'
tulos
id | käyttäjätunnus | ensimmäinen | viimeinen | last_login |
---|---|---|---|---|
1 | ohbillnotagain | Hillary | 2011-12-24 12:59:15 | |
2 | Gore | 2011-12-24 11:53:25 |
Poor George… Alright, täsmälleen sama syntaksi kuin viimeksi, paitsi että vaihdoimme sarakkeen nimen ja käytimme DATETIME-merkkijonoa vertailuun. DATETIME tietotyyppi sisältää kaikki samat elementit kuin päivämäärä tietotyyppi plus aikajono. Usein viitataan ’VVVV-KK-PP HH:MM:SS’ jälleen yksittäisissä lainauksissa ja välilyönnillä, joka erottaa päivämäärämerkkijonon aikamerkkijonosta, luomme PÄIVÄMÄÄRÄMERKKIJONON vertailua varten. Hillary ja Al molemmat tehdä leikata, koska he Kirjautunut sisään ennen ’ 2011-12-24 13: 00:00 ’ katkaise aikaaika. Täällä on paljon helpompaa kuin käytännössä näyttää. Se johtuu siitä, että laitamme DATETIME merkkijono käsin. SQL: ssä on muutamia PÄIVÄMÄÄRÄFUNKTIOITA, joilla voit leikkiä, joilla voit korvata merkkijonomme:
tärkeät SQL DATE-funktiot
Huom: SQL DATE-funktiot eroavat suuresti SQL-versioiden välillä. Nämä ovat MySQL.
- CURDATE() – saa nykyisen päivämäärän
- CURDIME() – saa nykyisen ajan
- nyt() – saa sekä päivämäärän että ajan (DATETIME-muodossa)
Jos et käytä MySQL: ää, harkitse vaihtoa. Vain vitsi, sellainen, mutta ei hätää, yksinkertainen kysely Google auttaa sinua löytämään oikeat SQL-toiminnot SQL-tietokantaan.