MySQL werkt met datums
MySQL-datums
Het moeilijkste bij het werken met datums is om er zeker van te zijn dat het formaat van de datum die u probeert in te voegen, overeenkomt met het formaat van de datumkolom in de database.
Zolang uw gegevens alleen het datumgedeelte bevatten, werken uw zoekopdrachten zoals verwacht. Als er echter een tijdsdeel bij betrokken is, wordt het ingewikkelder.
MySQL-datumgegevenstypen
MySQL wordt geleverd met de volgende gegevenstypen voor het opslaan van een datum of een datum/tijd-waarde in de database:
-
DATE
- formaat JJJJ-MM-DD -
DATETIME
- formaat: JJJJ-MM-DD HH:MI:SS TIMESTAMP
- formaat: JJJJ-MM-DD HH:MI:SS-
YEAR
- formaat YYYY of YY
Opmerking: het datumgegevenstype wordt ingesteld voor een kolom wanneer u een nieuwe tabel in uw database maakt!
Werken met datums
Kijk naar de volgende tabel:
Bestellingen Tabel:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
2 | Camembert Pierrot | 2008-11-09 |
3 | Mozzarella di Giovanni | 2008-11-11 |
4 | Mascarpone Fabioli | 2008-10-29 |
Nu willen we de records selecteren met een OrderDate van "2008-11-11" uit de bovenstaande tabel.
We gebruiken de volgende SELECT
verklaring:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
De resultatenset ziet er als volgt uit:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Let op: Twee data kunnen gemakkelijk vergeleken worden als er geen tijdscomponent bij komt kijken!
Neem nu aan dat de tabel "Orders" er als volgt uitziet (let op de toegevoegde tijdcomponent in de kolom "OrderDate"):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Camembert Pierrot | 2008-11-09 15:45:21 |
3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
4 | Mascarpone Fabioli | 2008-10-29 14:56:59 |
Als we dezelfde SELECT
verklaring gebruiken als hierboven:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
we krijgen geen resultaat! Dit komt omdat de zoekopdracht alleen zoekt naar datums zonder tijdsgedeelte.
Tip: om uw zoekopdrachten eenvoudig en gemakkelijk te onderhouden te houden, gebruik geen tijdcomponenten in uw datums, tenzij het moet!