Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Tipps und Tricks: Datum aus DateTime extrahieren im SQL-Server

Um aus einem Datum mit Uhrzeit, wie es bei­spiels­weise GETDATE() zurück­lie­fert, 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 auf­zei­gen. Diese sind nach mei­ner 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 wei­tere. Nachteil der meis­ten Methoden ist ent­we­der eine unsi­chere Konvertierung um Zeichenfolgen (hier ist die Sprache des SQL-Servers zu berück­sich­ti­gen) oder eine lange Ausführungszeit auf­grund eines kom­pli­zier­ten Ausführungsplanes.

Im SQL-Server 2008 wurde der Datentyp DATE ein­ge­führt, der diese umständ­li­chen Berechnungen unnö­tig macht. Das Statement lau­tet dann:

SELECT CONVERT(DATE, GETDATE())

Related Posts

Pin It on Pinterest