SQL Datumsfunktionen
SQL-Datumsangaben
Beim Umgang mit Datumsangaben ist die schwierigste Aufgabe wahrscheinlich sicherzustellen, dass das Format des eingefügten Datums mit dem Format der Datumsspalte in der Datenbank übereinstimmt.
Solange Ihre Daten nur den Datumsteil enthalten, ist das Ausführen von Abfragen kein Problem. Wenn jedoch der Zeitteil beteiligt ist, ist die Situation etwas komplizierter.
Bevor wir die Komplexität von Datumsabfragen erörtern, werfen wir zunächst einen Blick auf die wichtigsten integrierten Datumsverarbeitungsfunktionen.
MySQL-Datumsfunktionen
Die folgende Tabelle listet die wichtigsten integrierten Datumsfunktionen in MySQL auf:
| Funktion | Beschreibung |
|---|---|
| NOW() | Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück |
| CURDATE() | Gibt das aktuelle Datum zurück |
| CURTIME() | Gibt die aktuelle Uhrzeit zurück |
| DATE() | Extrahiert den Datumsteil eines Datums- oder Datum/Uhrzeit-Ausdrucks |
| EXTRACT() | Gibt den einzelnen Bestandteil eines Datums-/Uhrzeitwerts zurück |
| DATE_ADD() | Fügt einem Datum ein angegebenes Zeitintervall hinzu |
| DATE_SUB() | Subtrahiert ein angegebenes Zeitintervall von einem Datum |
| DATEDIFF() | Gibt die Anzahl der Tage zwischen zwei Datumsangaben zurück |
| DATE_FORMAT() | Zeigt Datum/Uhrzeit in verschiedenen Formaten an |
SQL Server Datumsfunktionen
Die folgende Tabelle listet die wichtigsten integrierten Datumsfunktionen in SQL Server auf:
| Funktion | Beschreibung |
|---|---|
| GETDATE() | Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück |
| DATEPART() | Gibt den einzelnen Bestandteil eines Datums-/Uhrzeitwerts zurück |
| DATEADD() | Addiert ein angegebenes Zeitintervall zu einem Datum oder subtrahiert es davon |
| DATEDIFF() | Gibt die Zeit zwischen zwei Datumsangaben zurück |
| CONVERT() | Zeigt Datum/Uhrzeit in verschiedenen Formaten an |
SQL-Datumsdatentypen
MySQLSpeichern Sie Datums- oder Datum/Uhrzeit-Werte in einer Datenbank mit den folgenden Datentypen:
- DATE - Format: YYYY-MM-DD
- DATETIME - Format: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format: YYYY-MM-DD HH:MM:SS
- YEAR - Format: YYYY oder YY
SQL ServerSpeichern Sie Datums- oder Datum/Uhrzeit-Werte in einer Datenbank mit den folgenden Datentypen:
- DATE - Format: YYYY-MM-DD
- DATETIME - Format: YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - Format: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format: Eindeutige Zahl
Hinweis:Wenn Sie eine neue Tabelle in der Datenbank erstellen, müssen Sie einen Datentyp für die Spalten auswählen!
Für alle verfügbaren Datentypen besuchen Sie unser vollständigesReferenzhandbuch für Datentypen。
SQL-Datumsverarbeitung
Wenn der Zeitanteil keine Rolle spielt, können wir zwei Datumsangaben einfach vergleichen!
Angenommen, wir haben die folgende "Orders"-Tabelle:
| 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 möchten wir den Datensatz mit OrderDate "2008-11-11" aus der obigen Tabelle auswählen.
Wir verwenden die folgende SELECT-Anweisung:
Die Ergebnismenge wird unten angezeigt:
| OrderId | ProductName | OrderDate |
|---|---|---|
| 1 | Geitost | 2008-11-11 |
| 3 | Mozzarella di Giovanni | 2008-11-11 |
Nehmen wir nun an, die Tabelle "Orders" sieht so aus (beachten Sie den Zeitanteil in der Spalte "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 |
Wenn wir dieselbe SELECT-Anweisung wie oben verwenden:
SELECT * FROM Orders WHERE OrderDate='2008-11-11' oder SELECT * FROM Orders WHERE OrderDate='2008-11-11 00:00:00'
Dann erhalten wir keine Ergebnisse! Denn es gibt kein Datum "2008-11-11 00:00:00" in der Tabelle. Ohne Zeitanteil ist die Standardzeit 00:00:00.
Tipp:Wenn Sie Abfragen einfach und wartbarer halten möchten, verwenden Sie bitte nicht den Zeitanteil in Datumsangaben!
Andere Erweiterungen