Wie man die GETDATE() Funktion in SQL Server verwendet
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
GETDATE()
gibt das aktuelle Systemdatum und die aktuelle Systemzeit in SQL Server zurück.- Sie wird häufig für Zeitstempel, Filterung und Datumsberechnungen verwendet.
GETDATE()
verwendet die lokale Zeitzone des Servers und ist nicht deterministisch.
Die Funktion GETDATE()
in SQL Server ist eine integrierte Funktion, die das aktuelle Datum und die aktuelle Zeit des Systems zurückgibt, auf dem die SQL Server-Instanz ausgeführt wird. Sie wird häufig verwendet, um Datensätze mit einem Zeitstempel zu versehen, Daten basierend auf dem aktuellen Datum zu filtern und Datumsberechnungen durchzuführen.
Syntax
GETDATE()
Diese Funktion benötigt keine Argumente und gibt das aktuelle Datum und die aktuelle Uhrzeit als DATETIME
-Wert im Format YYYY-MM-DD hh:mm:ss.mmm
zurück.
Grundlegende Verwendung
So rufen Sie das aktuelle Datum und die aktuelle Uhrzeit ab:
SELECT GETDATE() AS CurrentDateTime;
Dies gibt das aktuelle Systemdatum und die aktuelle Uhrzeit zurück.
Häufige Anwendungsfälle
1. Festlegen von Standardwerten in Tabellen
Sie können GETDATE()
verwenden, um Standardwerte für Datumsspalten beim Erstellen von Tabellen festzulegen:
CREATE TABLE Orders ( OrderID INT PRIMARY KEY, OrderDate DATETIME DEFAULT GETDATE() );
Dadurch wird sichergestellt, dass das aktuelle Datum und die aktuelle Uhrzeit verwendet werden, wenn für OrderDate
während des Einfügens kein Wert angegeben wird.
2. Filtern von Datensätzen basierend auf dem aktuellen Datum
So wählen Sie Datensätze aus einer Tabelle aus, bei denen das Datum mit dem aktuellen Datum übereinstimmt:
SELECT * FROM Orders WHERE CAST(OrderDate AS DATE) = CAST(GETDATE() AS DATE);
Diese Abfrage vergleicht nur die Datumsteile und ignoriert die Zeitkomponenten.
3. Berechnen von Datumsdifferenzen
So berechnen Sie die Differenz in Jahren zwischen einem gespeicherten Datum und dem aktuellen Datum:
SELECT EmployeeID, DATEDIFF(YEAR, BirthDate, GETDATE()) AS Age FROM Employees;
Dies berechnet das Alter jedes Mitarbeiters basierend auf seinem Geburtsdatum.
4. Hinzufügen oder Subtrahieren von Zeitintervallen
So addieren oder subtrahieren Sie Zeitintervalle vom aktuellen Datum:
-- 7 Tage hinzufügen SELECT DATEADD(DAY, 7, GETDATE()) AS DateAfter7Days; -- 1 Monat subtrahieren SELECT DATEADD(MONTH, -1, GETDATE()) AS DateBefore1Month;
Diese Abfragen passen das aktuelle Datum um die angegebenen Intervalle an.
Extrahieren bestimmter Datumsteile
So extrahieren Sie bestimmte Teile des aktuellen Datums:
SELECT YEAR(GETDATE()) AS CurrentYear, MONTH(GETDATE()) AS CurrentMonth, DAY(GETDATE()) AS CurrentDay;
Dies ruft das aktuelle Jahr, den aktuellen Monat und den aktuellen Tag separat ab.
Formatieren von Datum und Uhrzeit
So formatieren Sie das aktuelle Datum und die aktuelle Uhrzeit in einem bestimmten Zeichenfolgenformat:
SELECT FORMAT(GETDATE(), 'dd-MM-yyyy HH:mm:ss') AS FormattedDateTime;
Dies formatiert Datum und Uhrzeit als dd-MM-yyyy HH:mm:ss
.
Überlegungen
-
Zeitzone:
GETDATE()
gibt das aktuelle Datum und die aktuelle Uhrzeit basierend auf der lokalen Zeitzone des Servers zurück. Wenn Sie die UTC-Zeit benötigen, sollten SieGETUTCDATE()
verwenden. -
Genauigkeit: Für eine höhere Genauigkeit (einschließlich Sekundenbruchteilen) kann
SYSDATETIME()
verwendet werden, da es einenDATETIME2
-Wert mit einer höheren Genauigkeit alsGETDATE()
zurückgibt. -
Nicht-deterministische Funktion:
GETDATE()
ist nicht deterministisch, was bedeutet, dass sie jedes Mal, wenn sie aufgerufen wird, unterschiedliche Ergebnisse zurückgeben kann, selbst innerhalb derselben Abfrage. Dies kann sich auf die Indizierung und Abfrageoptimierung auswirken.
Fazit
Die Funktion GETDATE()
ist ein vielseitiges Werkzeug in SQL Server für die Arbeit mit dem aktuellen Datum und der aktuellen Uhrzeit. Ob Sie Datensätze mit einem Zeitstempel versehen, Daten filtern oder Datumsberechnungen durchführen, GETDATE()
bietet eine einfache Möglichkeit, das aktuelle Systemdatum und die aktuelle Uhrzeit in Ihre SQL-Abfragen zu integrieren.
FAQs
Sie gibt das aktuelle Datum und die aktuelle Uhrzeit des SQL Server-Systems zurück.
Sie wird für die Zeitstempelung von Datensätzen, die Filterung nach dem aktuellen Datum und die Datumsarithmetik verwendet.
Nein, sie stellt die lokale Serverzeit bereit. Verwenden Sie GETUTCDATE()
für UTC.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Backend-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Unterstützung mehrerer Sprachen
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt viele Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung - keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für verwertbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Null Betriebsaufwand - konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ