日付のオフセットを変更する
SWITCHOFFSET() 関数を使うと、DATETIME、DATETIME2、DATETIMEOFFSET 型の日付、または有効な日付文字列のタイムゾーンを変更できます。SWITCHOFFSET() は2つの引数をとり、入力となる日付(または文字列)とタイムゾーンのオフセットを指定します。新しいタイムゾーンでの時刻を返すため、たとえば東部夏時間の午前3時は中部夏時間の午前2時になります。
2016年のリオデジャネイロ夏季オリンピックは、2016年8月8日 午後11時(UTC)に開会しました。その日時を含む文字列から開始して、他の地域では何時だったかを確認してみましょう。
この演習はコースの一部です
SQL Serverで学ぶ時系列分析
演習の手順
- ブラジル・ブラジリア向けに、適切な関数呼び出しを入力してください。
- 米国イリノイ州シカゴ向けに、適切な関数呼び出しとタイムゾーンを入力してください。8月のシカゴはブラジリア標準時より2時間遅れです。
- インド・ニューデリー向けに、適切な関数呼び出しとタイムゾーンを入力してください。インドは夏時間を採用していないため、8月のニューデリーはブラジリア標準時より8時間半進んでいます。タイムゾーンを計算するときは、ブラジリアとニューデリーが UTC を挟んで反対側に位置していることに注意してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
DECLARE
@OlympicsUTC NVARCHAR(50) = N'2016-08-08 23:00:00';
SELECT
-- Fill in the time zone for Brasilia, Brazil
___(@OlympicsUTC, '-03:00') AS BrasiliaTime,
-- Fill in the time zone for Chicago, Illinois
___(@OlympicsUTC, ___) AS ChicagoTime,
-- Fill in the time zone for New Delhi, India
___(@OlympicsUTC, '+___') AS NewDelhiTime;