Communardo Tipps und Tricks
Datum aus DateTime extrahieren im SQL-Server
Um aus einem Datum mit Uhrzeit, wie es beispielsweise GETDATE() zurückliefert, ein Datumswert ohne Uhrzeit zu machen, sind bis zur Version 2005 des SQL-Servers einige Verrenkungen notwendig.
Ich möchte hier ein paar Lösungsansätze aufzeigen. Diese sind nach meiner Präferenz sortiert:
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)
SELECT CONVERT(DATETIME, CONVERT(CHAR(8), GETDATE(), 112), 112)
Es gibt sicher noch einige weitere. Nachteil der meisten Methoden ist entweder eine unsichere Konvertierung um Zeichenfolgen (hier ist die Sprache des SQL-Servers zu berücksichtigen) oder eine lange Ausführungszeit aufgrund eines komplizierten Ausführungsplanes.
Im SQL-Server 2008 wurde der Datentyp DATE eingeführt, der diese umständlichen Berechnungen unnötig macht. Das Statement lautet dann:
SELECT CONVERT(DATE, GETDATE())