SQL Date-Funktion
SQL-Datum
Die schwierigste Aufgabe, wenn wir mit Daten umgehen, ist wahrscheinlich sicherzustellen, dass das Format des eingefügten Datums mit dem Format der Datumsspalte in der Datenbank übereinstimmt.
Wenn die Daten nur das Datum enthalten, gibt es keine Probleme bei der Abfrage. Aber wenn es um die Zeit geht, wird die Situation etwas komplizierter.
Bevor wir die Komplexität der Datumabfragen diskutieren, schauen wir uns die wichtigsten internen Datumshandlungsfunktionen an.
MySQL Date-Funktionen
Die folgende Tabelle zeigt die wichtigsten internen Datumsfunktionen in MySQL an:
Funktion | Beschreibung |
---|---|
NOW() | Rückgabe des aktuellen Datums und der aktuellen Uhrzeit |
CURDATE() | Rückgabe des aktuellen Datums |
CURTIME() | Rückgabe der aktuellen Uhrzeit |
DATE() | Extrahieren des Datumsteils aus einem Datum oder einer Datum-/Zeit-Ausdrucks |
EXTRACT() | Rückgabe der单独部分 von Datum und Uhrzeit |
DATE_ADD() | Ein angegebenen Zeitraum zu einem Datum hinzufügen |
DATE_SUB() | Von einem Datum ein angegebenen Zeitraum abziehen |
DATEDIFF() | Rückgabe der Anzahl der Tage zwischen zwei Daten |
DATE_FORMAT() | Anzeige von Datum und Uhrzeit in verschiedenen Formaten |
SQL Server Date-Funktionen
Die folgende Tabelle zeigt die wichtigsten internen Datumsfunktionen in SQL Server an:
Funktion | Beschreibung |
---|---|
GETDATE() | Rückgabe des aktuellen Datums und der aktuellen Uhrzeit |
DATEPART() | Rückgabe der单独部分 von Datum und Uhrzeit |
DATEADD() | Hinzufügen oder Abziehen eines angegebenen Zeitraums in einem Datum |
DATEDIFF() | Rückgabe der Zeit zwischen zwei Daten |
CONVERT() | Anzeige von Datum und Uhrzeit in verschiedenen Formaten |
SQL Date-Datentyp
MySQL verwendet die folgenden Datentypen, um Daten oder Daten-/Zeitwerte in der Datenbank zu speichern:
- 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 Server verwendet die folgenden Datentypen, um Daten oder Daten-/Zeitwerte in der Datenbank zu speichern:
- DATE - Format YYYY-MM-DD
- DATETIME - Format: YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - Format: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format: Einzigartige Nummer
SQL Datumsverarbeitung
Ohne Zeitteile können wir die beiden Daten leicht vergleichen!
Nehmen wir an, dass wir die folgende "Orders"-Tabelle haben:
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
2 | printer | 2008-12-26 |
3 | electrograph | 2008-11-12 |
4 | telephone | 2008-10-19 |
Jetzt möchten wir die Einträge mit OrderDate "2008-12-26" aus der obigen Tabelle auswählen.
Wir verwenden den folgenden SELECT-Ausdruck:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Ergebnisliste:
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
3 | electrograph | 2008-12-26 |
Jetzt nehmen wir an, dass "Orders" so ähnlich ist (bitte beachten Sie den Zeitteil der "OrderDate"-Spalte):
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 16:23:55 |
2 | printer | 2008-12-26 10:45:26 |
3 | electrograph | 2008-11-12 14:12:08 |
4 | telephone | 2008-10-19 12:56:10 |
Wenn wir den obigen SELECT-Ausdruck verwenden:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Dann erhalten wir keine Ergebnisse. Das liegt daran, dass der Abfrage keine Zeitteile des Datums enthalten.
Tipp:Wenn Sie die Abfrage einfach und leicht zu warten gestalten möchten, dann verwenden Sie bitte keine Zeitteile im Datum!