За да получите "25-Oct-2010"
Ако приемем, че стойността е предоставена като низ, а не тип данни DATETIME:
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
Вижте документацията за CAST/CONVERT за други формати, въпреки че заявеният от вас изисква последваща обработка.
За да получите "2010-10-25 00:00:00.000"
Най-ефективният начин е да използвате DATEADD &DATEDIFF:
SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)
Препратки:
Тестване
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
Връща:
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
Допълнение
Тъй като използвате SQL Server 2005, бихте могли да улесните форматирането на дата за себе си, като създадете SQLCLR функция, която ще ви позволи да използвате форматирането на дата в .NET.