MS SQL-Server > Lösungen, Rezepte, Tipps, Fragen
Wie berechnet man das Datum ohne Uhrzeit oder nur die Uhrzeit?
Bei SQL Server 2008, SQL Server 2012, SQL Server 2014:
DECLARE @DatumMitUhrzeit AS DATETIME
SET @DatumMitUhrzeit = GETDATE() -- Beispiel für eine DATETIME-Eintrag
-- Nur Datum
SELECT CAST(@DatumMitUhrzeit AS DATE)
-- oder
SELECT CONVERT(DATE, @DatumMitUhrzeit)
-- Nur Zeit
SELECT CAST(@DatumMitUhrzeit AS TIME)
-- oder
SELECT CONVERT(TIME, @DatumMitUhrzeit)
SQL Server 2000, SQL Server 2005:
DECLARE @DatumMitUhrzeit AS DATETIME
SET @DatumMitUhrzeit = GETDATE() -- Beispiel für eine DATETIME-Eintrag
-- Nur Datum
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, @DatumMitUhrzeit), 0)
-- oder
SELECT CAST(FLOOR(CAST(@DatumMitUhrzeit AS FLOAT)) AS DATETIME)
-- oder
-- VARCHAR Operationen sollten aber aus Perfomance-Gründen und etwaigen Problemen
-- mit der Lokalisierung grundsätzlich vermieden werden
SELECT CONVERT(DATETIME, CONVERT(CHAR(8), @DatumMitUhrzeit , 112), 112)
-- Nur Zeit
Macht bei SQL Server 2005 keinen so richtigen Sinn, da das DATETIME immer ab 01.01.1900 beginnt, d. h. eine Reduktion auf den Zeitanteil würde immer die entsprechende Zeit am Tag 01.01.1900 anzeigen.