declare @createTime datetime = '2012-10-06 02:29:37.243';
-- original value, default formatting
select @createTime;
-- formatted
select convert(varchar, @createTime, 100);
-- subtract 4 hours, formatted
select convert(varchar, dateadd(hour, -4, @createTime), 100);
dateadd
を使用する上記のクエリ 常に4時間を差し引きます。任意の日時をUTCから現地時間に変換することが目標の場合、加算/減算する必要のあるオフセットは元の日時に依存するため、より複雑になります。 -4のような単一の値が常に機能するとは限りません。一般的なケースに対処するためのいくつかのアイデアは次のとおりです。
SQL 2005でUTCとローカル(つまりPST)時間の間で日付を効果的に変換する