関連するSQLテーブルに挿入されるデータをxml経由で受信しています。私がデータを挿入するために使用している方法は、SQLでXMLをクエリし、必要に応じて一括挿入を行うことです。
私が抱えている問題は、日付が有効な日付として認識されないため、常にデフォルトの日付に戻ることです。
ここに、提供された日付を含むXMLのスニペットがあります
<Upload xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DeviceID>0008E02B66DD_</DeviceID>
<DeviceType>03.20</DeviceType>
<FarmID>2</FarmID>
<UploadDate>0001-01-01T00:00:00</UploadDate>
<Sessions>
<SessionID>99</SessionID>
<RecordedDate>2012-02-03T13:00:00+13:00</RecordedDate>
<Readings />
</Sessions>
...
これがそれを処理する私のSQLコードのスニペットです
Select
(CASE
WHEN ISDATE(s.value('(RecordedDate)[1]', 'varchar(50)')) = 1 THEN s.value('(RecordedDate)[1]', 'varchar(50)')
ELSE @UploadDate
END) DateOfMeasurement
INTO #Session
FROM
@XMLData.nodes('/Upload') AS Upload(u)
CROSS APPLY
u.nodes('./Sessions') Sessions(s)
- 注:@UploadDateは、実際にはSQL getDate()からの値、つまり私のデフォルトです
これを挿入しているデータベースのフィールドは日時フィールドです
質問:
XMLで受信した日付、つまり2012-02-03T13:00:00 + 13:00をSQLデータベースの日時フィールドに挿入したいと思います。これをSQLでうまく変換する方法はありますか?