MySQL werk met datums
MySQL-datums
Die moeilikste deel wanneer jy met datums werk, is om seker te maak dat die formaat van die datum wat jy probeer invoeg, ooreenstem met die formaat van die datumkolom in die databasis.
Solank jou data slegs die datumgedeelte bevat, sal jou navrae werk soos verwag. As 'n tydgedeelte egter betrokke is, word dit meer ingewikkeld.
MySQL Datum Data Tipes
MySQL kom met die volgende datatipes om 'n datum of 'n datum/tydwaarde in die databasis te stoor:
-
DATE
- formaat JJJJ-MM-DD -
DATETIME
- formaat: JJJJ-MM-DD UU:MI:SS TIMESTAMP
- formaat: JJJJ-MM-DD UU:MI:SS-
YEAR
- formateer JJJJ of JJ
Let wel: Die datumdatatipe word vir 'n kolom gestel wanneer jy 'n nuwe tabel in jou databasis skep!
Werk met datums
Kyk na die volgende tabel:
Bestellingstabel
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 |
Nou wil ons die rekords met 'n Besteldatum van "2008-11-11" uit die tabel hierbo kies.
Ons gebruik die volgende SELECT
stelling:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
Die resultaat-stel sal soos volg lyk:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Let wel: Twee datums kan maklik vergelyk word as daar geen tydskomponent betrokke is nie!
Neem nou aan dat die "Bestellings"-tabel so lyk (let op die bygevoegde tydkomponent in die "OrderDate"-kolom):
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 |
As ons dieselfde SELECT
stelling as hierbo gebruik:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
ons sal geen resultaat kry nie! Dit is omdat die navraag net op soek is na datums met geen tydgedeelte nie.
Wenk: Om jou navrae eenvoudig en maklik te hou om te hou, moenie tydkomponente in jou datums gebruik nie, tensy jy moet!