MS SQL-Server

Knowledge Base

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.