「2010 年 10 月 25 日」を取得するには
値が 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 を使用しているので、.NET の日付形式を使用できるようにする SQLCLR 関数を作成することで、日付の形式を簡単に設定できます。