MySQL arbeitet mit Datumsangaben
MySQL-Daten
Der schwierigste Teil bei der Arbeit mit Datumsangaben besteht darin, sicherzustellen, dass das Format des Datums, das Sie einfügen möchten, mit dem Format der Datumsspalte in der Datenbank übereinstimmt.
Solange Ihre Daten nur den Datumsteil enthalten, funktionieren Ihre Abfragen wie erwartet. Wenn es jedoch um einen Zeitabschnitt geht, wird es komplizierter.
MySQL-Datumsdatentypen
MySQL verfügt über die folgenden Datentypen zum Speichern eines Datums oder eines Datums-/Uhrzeitwerts in der Datenbank:
-
DATE
- Format JJJJ-MM-TT -
DATETIME
- Format: JJJJ-MM-TT HH:MI:SS TIMESTAMP
- Format: JJJJ-MM-TT HH:MI:SS-
YEAR
- Format YYYY oder YY
Hinweis: Der Datumsdatentyp wird für eine Spalte festgelegt, wenn Sie eine neue Tabelle in Ihrer Datenbank erstellen!
Arbeiten mit Datumsangaben
Sehen Sie sich die folgende Tabelle an:
Bestelltabelle
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 |
Jetzt wollen wir die Datensätze mit einem OrderDate von „2008-11-11“ aus der obigen Tabelle auswählen.
Wir verwenden die folgende SELECT
Anweisung:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
Die Ergebnismenge sieht folgendermaßen aus:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Hinweis: Zwei Daten können leicht verglichen werden, wenn es keine Zeitkomponente gibt!
Nehmen Sie nun an, dass die Tabelle „Bestellungen“ so aussieht (beachten Sie die hinzugefügte Zeitkomponente in der Spalte „Bestelldatum“):
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 |
Wenn wir dieselbe SELECT
Aussage wie oben verwenden:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
wir werden kein Ergebnis bekommen! Dies liegt daran, dass die Abfrage nur nach Datumsangaben ohne Zeitanteil sucht.
Tipp: Um Ihre Abfragen einfach und pflegeleicht zu halten, verwenden Sie keine Zeitkomponenten in Ihren Daten, es sei denn, Sie müssen!