0

このMSDNの記事によると:

「オプションのタイムゾーンインジケーターZは、タイムゾーン情報があるXML日時値をタイムゾーンがないSQLServer日時値に簡単にマッピングできるようにするために使用されます。ZはタイムゾーンUTC-0のインジケーターです。その他のタイムゾーン+または-方向のHH:MMオフセットで示されます。例:2006-12-12T23:45:12-08:00。 "

しかし、私が実行すると:

declare @d datetime;
set @d=getdate();
print CONVERT(varchar(40), @d, 127)

結果は2012-07-31T14:04:11.447です。タイムゾーン部分はありません。私は何が間違っているのですか?

4

1 に答える 1

3

タイプにはタイムゾーンが含まれDateTimeておらず、GETDATE()関数はDateTimeを返します。

代わりに、SQL Server2008で導入されたSQLServerのタイプを使用する必要がありDateTimeOffsetます。これにより、次の例が作成されます。

declare @d datetimeoffset;
set @d=sysdatetimeoffset();
print CONVERT(varchar(40), @d, 127)

関数の使用に注意してくださいSYSDATETIMEOFFSET()

そうは言っても、実際に何を達成しようとしていますか?タイムゾーンを抽出しようとしている実際のタイムゾーンのないデータ(たとえば、DateTime列のデータ)がある場合、それは注意が必要です。

于 2012-07-31T21:20:14.487 に答える