4

以下の日時形式を変換するにはどうすればよいですか?

2010-10-25 11:13:36.700

の中へ

2010年10月25日または2010-10-2500:00:00.000

4

5 に答える 5

5

「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 関数を作成することで、日付の形式を簡単に設定できます。

于 2010-10-25T03:36:57.913 に答える
2

これをチェック

SELECT convert(VARCHAR, getdate(),106)

これはあなたに与えるでしょう25 Oct 2010

SELECT REPLACE(convert(VARCHAR, getdate(),106), ' ' , '-')

これはあなたに与えるでしょう25-Oct-2010

于 2010-10-25T03:29:18.233 に答える
1

これが役立つかどうかを確認してください:

SELECT REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-') 

詳細はこちら

PD。Stackoverflow はときどきハマりすぎてしまうことがあります。その前に Google を試してみるのもいいかもしれません

于 2010-10-25T03:29:37.330 に答える
1

CONVERT(NVARCHAR(20),getDATE(),105)を選択

于 2010-10-25T06:52:02.550 に答える