Om "25-okt-2010" te krijgen
Ervan uitgaande dat de waarde wordt geleverd als een tekenreeks, niet als een DATETIME-gegevenstype:
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
Zie de CAST/CONVERT-documentatie voor andere formaten, hoewel degene die je hebt aangevraagd nabewerking vereist.
Om "2010-10-25 00:00:00.000" te krijgen
De best presterende manier is om DATEADD &DATEDIFF te gebruiken:
SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)
Referenties:
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
Retourneren:
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
Aanvulling
Aangezien u SQL Server 2005 gebruikt, kunt u het opmaken van de datum voor uzelf gemakkelijker maken door een SQLCLR-functie te maken waarmee u de .NET-datumopmaak kunt gebruiken.