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

SQL Server で DateTime 文字列を DateTime に変換する方法

    SQL Server 2008 の場合 datetimeoffset を使用できます データ型。

    SELECT [Result] = CONVERT(datetimeoffset, '2005-08-08T00:01:00+01:00', 127)
    

    出力:

    Result
    ----------------------------------
    2005-08-08 00:01:00.0000000 +01:00
    

    SQL Server 2005 の場合 以前は、UTC の日付とオフセットを計算できます:

    SELECT [LocalDate], [OffsetMinutes], [UtcDate]
    FROM
    (
        SELECT [IsoDate] = '2007-08-08T00:01:00+01:00'
    ) A
    OUTER APPLY
    (
        SELECT [LocalDate] = CONVERT(datetime, LEFT([IsoDate], 19), 126)
        , [OffsetMinutes] =
            CASE SUBSTRING([IsoDate], 20, 1)
                WHEN '+' THEN +1
                WHEN '-' THEN -1
            END
            * DATEDIFF(minute, 0,
                CAST(SUBSTRING([IsoDate], 21, 5) + ':00' AS datetime))
        WHERE [IsoDate] LIKE '____-__-__T__:__:__[+-]__:__'
    ) B
    OUTER APPLY
    (
        SELECT [UtcDate] = DATEADD(minute, -[OffsetMinutes], [LocalDate])
    ) C
    

    出力:

    LocalDate               OffsetMinutes UtcDate
    ----------------------- ------------- -----------------------
    2007-08-08 00:01:00.000 60            2007-08-07 23:01:00.000
    


    1. あるテーブルの条件の結果を選択し、それを別のテーブルに表示するためのMYSQLクエリ

    2. 2000バイトまたは4000バイトより大きいBLOBテスト文字列を挿入します

    3. JDBCでMySQLを使用して.sqlスクリプトを実行する

    4. 2つの変動する日付の間に無料の車両を見つけようとしています