sql-server - ändern - title tag wordpress




Wie entferne ich den Zeitanteil eines Datetime-Wertes(SQL Server)? (4)

Bitte versuche:

SELECT CONVERT(VARCHAR(10),[YOUR COLUMN NAME],105) [YOURTABLENAME]

Folgendes benutze ich:

SELECT CAST(FLOOR(CAST(getdate() as FLOAT)) as DATETIME)

Ich denke, es könnte einen besseren und eleganteren Weg geben.

Bedarf:

  • Es muss so schnell wie möglich sein (je weniger Gießen, desto besser).
  • Das Endergebnis muss ein datetime Typ und keine Zeichenfolge sein.

Ihr CAST - FLOOR - CAST scheint zumindest auf MS SQL Server 2005 bereits der optimale Weg zu sein.

Einige andere Lösungen, die ich gesehen habe, haben eine String-Konvertierung, wie Select Convert(varchar(11), getdate(),101) in ihnen, die um einen Faktor von 10 langsamer ist.


SQL Server 2008 hat einen neuen Datumsdatentyp und vereinfacht dieses Problem zu:

SELECT CAST(CAST(GETDATE() AS date) AS datetime)

SQL2005: Ich empfehle Cast statt Dateadd. Beispielsweise,

select cast(DATEDIFF(DAY, 0, datetimefield) as datetime)

im Durchschnitt um 10% schneller auf meinem Datensatz, als

select DATEADD(DAY, DATEDIFF(DAY, 0, datetimefield), 0)

(und Casting in smalldatetime war noch schneller)





date-conversion