以下の日時形式を変換するにはどうすればよいですか?
2010-10-25 11:13:36.700
の中へ
2010年10月25日または2010-10-2500:00:00.000
以下の日時形式を変換するにはどうすればよいですか?
2010-10-25 11:13:36.700
の中へ
2010年10月25日または2010-10-2500:00:00.000
値が DATETIME データ型ではなく、文字列として提供されると仮定します。
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
他の形式については、 CAST/CONVERT のドキュメントを参照してください。ただし、要求した形式には後処理が必要です。
最良の方法は、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 関数を作成することで、日付の形式を簡単に設定できます。
これをチェック
SELECT convert(VARCHAR, getdate(),106)
これはあなたに与えるでしょう25 Oct 2010
と
SELECT REPLACE(convert(VARCHAR, getdate(),106), ' ' , '-')
これはあなたに与えるでしょう25-Oct-2010
これが役立つかどうかを確認してください:
SELECT REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-')
詳細はこちら
PD。Stackoverflow はときどきハマりすぎてしまうことがあります。その前に Google を試してみるのもいいかもしれません
CONVERT(NVARCHAR(20),getDATE(),105)を選択