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:

  1. SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

  2. SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)

  3. 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())

Dorrit Riemenschneider
18. Dezember 2008 

Sie haben Fragen oder möchten sich von uns beraten lassen?

Gerne stehen wir für Ihre Fragen zur Verfügung. Nutzen Sie einfach unser Kontaktformular.