Чтобы получить «25 октября 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.