SQL Server Datumsformate: Ein umfassender Leitfaden

Einleitung
Die Arbeit mit Datums- und Zeitwerten ist ein routinemäßiger Bestandteil der Datenbankentwicklung. Egal, ob Sie Zeilen filtern, Berichte erstellen oder Zeitstempel darstellen – eine konsistente Formatierung trägt zur Klarheit bei. Dieser Artikel erklärt, wie Sie Datumswerte in SQL Server mit integrierten Tools und Funktionen formatieren und manipulieren.
Das Verständnis der SQL Server-Datetime-Funktionen verbessert die Genauigkeit von Berichten, gewährleistet eine korrekte regionale Formatierung und vereinfacht die Logik nachgelagerter Anwendungen. In den folgenden Abschnitten werden wir die wichtigsten Datentypen, Formatierungsoptionen und Best Practices für Datumsangaben in SQL Server beleuchten.
Übersicht zur Datenkonformität | Regulatorische Rahmenbedingungen
Umgang mit Zeitzonen und Schnellübersicht der Style-Codes
Sofortige Umrechnung mit AT TIME ZONE
Ab SQL Server 2016 vereinfacht AT TIME ZONE die Umrechnung von UTC-Zeitstempeln in lokale Zeiten (und umgekehrt), ohne feste Offsets zu codieren oder sich mit Sommerzeitumstellungen herumzuschlagen.
-- Einmal in UTC speichern, lokal ausgeben
DECLARE @utc DATETIME2 = SYSUTCDATETIME();
SELECT
@utc AS StoredUTC,
@utc AT TIME ZONE 'UTC'
AT TIME ZONE 'Central European Standard Time' AS BerlinTime,
@utc AT TIME ZONE 'UTC'
AT TIME ZONE 'Pacific Standard Time' AS SeattleTime;
Am häufigsten verwendete CONVERT-Style-Codes
| Stil | Beispielausgabe | Typische Verwendung |
|---|---|---|
| 101 | 07/15/2025 | USA MM/TT/JJJJ |
| 103 | 15/07/2025 | EU TT/MM/JJJJ |
| 104 | 15.07.2025 | DE TT.MM.JJJJ |
| 120 | 2025-07-15 13:25:42 | ISO 24-Stunden |
| 121 | 2025-07-15 13:25:42.347 | ISO ms-Präzision |
Halten Sie sich an ISO-Stile (120/121) für APIs, verwenden Sie länderspezifische Formate nur in Präsentationsschichten und speichern Sie Daten stets in UTC, wenn Zeilen über Regionen hinweg transferiert werden.
Was ist SQL Server?
Microsoft SQL Server ist eine relationale Datenbankplattform, die in Unternehmensumgebungen weit verbreitet ist. Sie unterstützt transaktionale und analytische Arbeitslasten und bietet starke Funktionen zur Verwaltung strukturierter Daten – einschließlich integrierter Tools zur Speicherung, Formatierung und Berechnung von Datums- und Zeitwerten.
SQL Server Datums- und Zeitdatentypen
SQL Server bietet mehrere integrierte Typen zur Speicherung und Verarbeitung von Datums- und Zeitwerten. Einige sind legacy-kompatibel, während andere moderne Präzision und Zeitzonenunterstützung bieten. Die Wahl des richtigen Typs hängt von der benötigten Genauigkeit und Speicher-Effizienz ab.
| Typ | Kategorie | Anwendungsfälle |
|---|---|---|
| datetime | Alt | Allgemeine Speicherung mit Millisekundenpräzision |
| smalldatetime | Alt | Kompakte Speicherung, genau bis auf die Minute |
| date | Modern | Speichert nur das Kalendardatum (ohne Zeitanteil) |
| time | Modern | Speichert nur die Zeit, ideal für Terminplanung |
| datetime2 | Modern | Hochpräzises Datum und Zeit mit erweitertem Bereich |
| datetimeoffset | Modern | Beinhaltet Zeitzonenbewusstsein |
Standardausgabeformat
Standardmäßig liefert eine Abfrage wie SELECT GETDATE(); ein Ergebnis im Format 'YYYY-MM-DD HH:MI:SS.mmm'. Zum Beispiel:
2024-07-15 13:25:42.347
Um das Format anzupassen, verwenden Sie die Funktionen CONVERT() oder FORMAT() mit Stil-Codes.
Formatierung von Datumsangaben in SQL Server
Die Umwandlung von Datumswerten in lesbare Zeichenketten ist für Berichte oder UI-Ausgaben unerlässlich. Die Funktion CONVERT() akzeptiert Stil-Codes für verschiedene länderspezifische Formate.
DECLARE @date DATETIME = GETDATE(); SELECT CONVERT(VARCHAR, @date, 101) AS US_Format, -- MM/TT/JJJJ CONVERT(VARCHAR, @date, 103) AS UK_Format, -- TT/MM/JJJJ CONVERT(VARCHAR, @date, 120) AS ISO_Format; -- JJJJ-MM-TT HH:MI:SS
Arbeiten mit Zeichenketten und Datumswerten
Wenn Eingaben als Zeichenkette empfangen werden, können Sie diese mit den Funktionen CONVERT() oder CAST() umwandeln. Dies hilft bei Integrations-Pipelines und dynamischem SQL.
DECLARE @str VARCHAR(20) = '2024-07-12 14:30:00'; SELECT CONVERT(DATETIME, @str) AS ConvertedDate;
Wo Genauigkeit wichtig ist, verwenden Sie datetime2 oder datetimeoffset für einen erweiterten Bereich und Zeitzonenfunktionen.
Datumsmathematik
Das Addieren oder Subtrahieren von Zeitintervallen kann mit DATEADD() gehandhabt werden. So lassen sich Verfallsdaten, Fälligkeitszeiten oder Berichtszeiträume leicht berechnen.
DECLARE @start DATETIME = '2024-07-12'; SELECT DATEADD(DAY, 5, @start) AS PlusFiveDays, DATEADD(MONTH, 1, @start) AS NextMonth;
Extrahieren von Datumsbestandteilen
Benötigen Sie einen bestimmten Teil eines Datums? SQL Server bietet direkte Funktionen zum Extrahieren von Jahr, Monat, Wochentag und mehr.
SELECT YEAR(GETDATE()) AS Year, MONTH(GETDATE()) AS Month, DAY(GETDATE()) AS Day, DATEPART(WEEKDAY, GETDATE()) AS Weekday;
Best Practices für SQL Server Datumsangaben
- Verwenden Sie den kleinsten Datums-/Zeittyp, der Ihren Anforderungen entspricht. Verwenden Sie beispielsweise
date, wenn die Zeit keine Rolle spielt. - Halten Sie sich bei Import/Export an ISO-formatierte Zeichenketten, um Mehrdeutigkeiten zu vermeiden.
- Beziehen Sie sich auf die offiziellen Microsoft Stil-Codes zur Gewährleistung konsistenter Formatierung.
- Seien Sie sich der Server-Lokaleinstellungen und Spracheinstellungen bewusst – diese können die Eingabeparsing und das Verhältnis von Tag und Monat beeinflussen.
Umgang mit Zeitzonen
Zeitzonenbewusstsein ist für globale Anwendungen entscheidend. Das datetimeoffset in SQL Server hilft, Konsistenz beim Speichern von UTC und bei der Umrechnung in lokale Zeitzonen sicherzustellen.
DECLARE @utc DATETIMEOFFSET = '2024-07-12 12:00:00 +00:00'; DECLARE @cet DATETIMEOFFSET = '2024-07-12 14:00:00 +02:00'; SELECT DATEDIFF(HOUR, @utc, @cet) AS HourDifference;
Zusammenfassung und Fazit
Die Verwaltung und Formatierung von Datumswerten in SQL Server muss nicht komplex sein. Wenn Sie die richtigen Datentypen verstehen und Umrechnungsfunktionen strategisch anwenden, können Sie sicherstellen, dass Ihre Anwendungen zeitbasierte Informationen klar und konsistent darstellen.
Egal, ob Sie Berichte erstellen, Zeichenketten parsen oder zeitbewusste Geschäftslogik implementieren – das Beherrschen von SQL Server Datumsangaben verschafft Ihnen präzise Kontrolle über zeitliche Daten. Nutzen Sie integrierte Funktionen, halten Sie sich an Formatierungsstandards und verwenden Sie Zeitzonenunterstützung, um Fehler zu reduzieren und das Vertrauen der Nutzer zu erhöhen.
