Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Konvertieren Sie datetime in SQL Server

Um "25. Okt. 2010" zu erhalten

Angenommen, der Wert wird als Zeichenfolge und nicht als DATETIME-Datentyp bereitgestellt:

SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')

Weitere Informationen finden Sie in der CAST/CONVERT-Dokumentation für andere Formate, obwohl das von Ihnen angeforderte eine Nachbearbeitung erfordert.

Um "2010-10-25 00:00:00.000" zu erhalten

Das leistungsstärkste Mittel ist die Verwendung von DATEADD &DATEDIFF:

SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)

Referenzen:

Testen

WITH sample AS (
   SELECT CAST('2010-10-25 11:13:36.700' AS DATETIME) dt)
SELECT REPLACE(CONVERT(VARCHAR, s.dt, 106), ' ', '-') AS col1,
       DATEADD(d, DATEDIFF(dd, 0, s.dt), 0) AS col2
  FROM sample s

Rückgabe:

col1          col2
-------------------------------------
25-Oct-2010   2010-10-25 00:00:00.000

Nachtrag

Da Sie sich auf SQL Server 2005 befinden, könnten Sie sich die Datumsformatierung erleichtern, indem Sie eine SQLCLR-Funktion erstellen, mit der Sie die .NET-Datumsformatierung verwenden können.