Untuk mendapatkan "25-Oct-2010"
Dengan asumsi nilai diberikan sebagai string, bukan tipe data DATETIME:
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
Lihat dokumentasi CAST/CONVERT untuk format lain, meskipun yang Anda minta memerlukan pasca-pemrosesan.
Untuk mendapatkan "2010-10-25 00:00:00.000"
Cara berkinerja terbaik adalah menggunakan DATEADD &DATEDIFF:
SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)
Referensi:
Pengujian
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
Pengembalian:
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
Tambahan
Karena Anda menggunakan SQL Server 2005, Anda dapat membuat pemformatan tanggal menjadi lebih mudah dengan membuat fungsi SQLCLR yang memungkinkan Anda menggunakan pemformatan tanggal .NET.