data en tijden zijn extreem frustrerend gegevenstypen en SQL maakt ze niet gemakkelijker om mee te werken dan andere talen. Hoewel datum en tijd eigenlijk volledig verschillende gegevenstypen zijn, worden ze vaak samengevoegd in een datetime gegevenstype. SQL Data en tijden alleen zijn vrij eenvoudig, hoewel ze een speciale opmaak vereisen. Echter, het samenvoegen van de twee kan een van de meest pijnlijke taken die u in uw vroege jaren zal worden geconfronteerd. Een goede vuistregel is om alleen een tijd en datum samen te gebruiken wanneer je absoluut nodig hebt of zal moeten in de toekomst. Ik zal uitleggen waarom data en tijden de dingen compliceert in een minuut. Eerste, laten we eens kijken naar hoe gemakkelijk het leven als je gewoon werken met data.
werken met SQL-datums
onze tabel “gebruikers” :
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.
Voorbeeld
SELECT *FROM UsersWHERE member_since < '2011-12-25'
Resultaat
id | gebruikersnaam | eerste | laatste | member_since |
---|---|---|---|---|
2 | internetCreator | Al | Gore | 2011-12-8 |
3 | dontMessWithTexas | George | Struik | 2011-7-9 |
Oke, we gezegd December 25, 2011, wat betekent dat arme Hillary is niet opgenomen, omdat ze op die dag. Al haalde nauwelijks de cut, maar oude George was ver voor onze cut off date. Ik denk dat we eigenlijk moeten praten over wat er gebeurd is. Tot waar member_since < ‘2011-12-25’, we weten wat we deden. We kunnen waarschijnlijk raden wat hier aan de hand is, maar ik versla het dode paard. We controleren onze member_since kolom om te zien of deze kleiner is dan, <, onze datum, die in enkele aanhalingstekens werd geschreven als ‘2011-12-25’. Vaak wanneer u googlen voor hulp met datums, zie je deze syntaxis aangeduid als ‘YYYY-MM-DD’, waar Y is voor jaar, M is voor maand, en D is voor dag, uiteraard. Elke herhaling is een symbool van een lege tekenruimte voor dat element. Dus je wilt maar 2 cijfers voor de maand omdat dat logisch is, en misschien geef je niet om de eerste 2 karakters van het jaar. In plaats daarvan schrijf je gewoon, jy om 11 te krijgen. Gemakkelijk genoeg, op de prachtige DATETIMEs
met behulp van DATETIME in SQL
onze nieuwe “Users” tabel:
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 proberen we al onze leden te krijgen die eerder ingelogd zijn voor 1:00PM 24 December 2011.
Voorbeeld
SELECT * FROM UsersWHERE last_login < '2011-12-24 13:00:00'
Resultaat
id | gebruikersnaam | eerste | laatste | last_login |
---|---|---|---|---|
1 | ohBillNotAgain | Hillary | Clinton | 2011-12-24 12:59:15 |
2 | internetCreator | Al | Gore | 2011-12-24 11:53:25 |
Poor George… goed, precies dezelfde syntaxis als een laatste met behalve dat we de kolomnaam hebben vervangen en een datetime string hebben gebruikt om mee te vergelijken. Het datetime gegevenstype bevat alle dezelfde elementen als het DATUMGEGEVENSTYPE plus een tijdstring. Gewoonlijk aangeduid als ‘YYYY-MM-DD HH:MM: SS’ opnieuw, in enkele citaten en met een spatie die de datumstring scheidt van de tijdstring, maken we onze datumstring voor vergelijking. Hillary en Al beiden maken de cut omdat ze ingelogd voor de ‘ 2011-12-24 13: 00:00 ‘ cut off DATETIME. Het is hier veel makkelijker dan in de praktijk. Dat komt omdat we de DateTime string met de hand inbrengen. SQL heeft een paar datumfuncties waarmee je kunt spelen waarmee je onze string kunt vervangen door:
belangrijke SQL-datumfuncties
opmerking: SQL-datumfuncties verschillen sterk tussen SQL-versies. Dit zijn MySQL.
- CURDATE () – krijgt de huidige datum
- CURTIME () – krijgt de huidige tijd
- nu () – krijgt zowel de datum en tijd (in DateTime formaat)
Als u geen MySQL gebruikt, overweeg dan om te schakelen. Grapje, soort, maar geen zorgen, een eenvoudige query van Google zal u helpen bij het vinden van de juiste SQL-functies voor uw SQL-database.