For at få "25-Oct-2010"
Forudsat at værdien er angivet som en streng, ikke en DATETIME-datatype:
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
Se CAST/CONVERT-dokumentationen for andre formater, selvom det, du anmodede om, kræver efterbehandling.
For at få "2010-10-25 00:00:00.000"
Det bedste middel er at bruge DATEADD &DATEDIFF:
SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)
Referencer:
Test
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
Returnerer:
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
Tillæg
Da du er på SQL Server 2005, kan du gøre datoformatering nemmere for dig selv ved at oprette en SQLCLR-funktion, der giver dig mulighed for at bruge .NET datoformatering.