Aby uzyskać „25 października 2010”
Zakładając, że wartość jest podana jako ciąg, a nie typ danych DATETIME:
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
Zobacz dokumentację CAST/CONVERT dla innych formatów, chociaż ten, o który prosiłeś, wymaga przetwarzania końcowego.
Aby uzyskać „25.10.2010 00:00:00.000”
Najskuteczniejszym sposobem jest użycie DATEADD i DATEDIFF:
SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)
Referencje:
Testowanie
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
Zwroty:
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
Uzupełnienie
Ponieważ korzystasz z SQL Server 2005, możesz ułatwić sobie formatowanie daty, tworząc funkcję SQLCLR, która umożliwiłaby użycie formatowania daty .NET.