sql >> データベース >  >> RDS >> Sqlserver

SQLサーバーで日時を変換する

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



    1. HibernateでOracleDateを使用する場合の日付/時刻のJavaタイプ

    2. キーの長さのないキー指定で使用されるBLOB/TEXT列の「値」

    3. CSVファイルからCSVファイルのヘッダーを含むPostgreSQLテーブルにコピーするにはどうすればよいですか?

    4. カーソルがOracleのレコードを返すかどうかを確認するにはどうすればよいですか?