0

データは XML として保存されます (サンプル):-

<root>
    <data>
        <checked>true</checked>
        <datetimestamp>2016-10-18T08:11:12-06:00</datetimestamp>
    </data>
    <data>
        <checked>true</checked>
        <datetimestamp>2016-10-18T08:13:20-06:00</datetimestamp>
    </data>
</root>

OpenXML を使用してデータを読み込んでいます:-

DECLARE @XData XML
DECLARE @doc INT

DECLARE @TempXML TABLE
(
    checked BIT,
    datetimestamp DATETIME,
)  

SELECT @XData = Data FROM Table1 WHERE ID = @ItemId

EXEC sp_xml_preparedocument @doc OUTPUT, @XData

INSERT INTO @TempXML(checked,datetimestamp)  
    SELECT * FROM OPENXML (@doc, '/root/data',1)
    WITH (
    checked BIT 'checked',
    DateTimeStamp DATETIME 'datetimestamp',
    )

DateTime は XML で UTC として格納されます。上記の SP では、openXML を使用して xml データを読み取り、一時テーブルにデータを格納しています。挿入中に UTC 日時を現地時間に変換する必要があります。どうやってやるの。次のコード行は、UTC をローカル タイム ゾーンに完全に変換しますが、Openxml でそれを使用する方法を理解できませんでした:-

SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable
4

1 に答える 1