2017-08-07 10 views
0

datetimeのデータ型をSQL Server 2016 Expressデータベースに使用する予定です。これは本番環境のAzure SQLデータベースにデプロイします。Azureの "date"と "time"データ型のUTCタイムゾーンSQL

私は "datetime2"データ型について知っていますが、Azure SQLはUTCタイムゾーンでそれを保存します。これは "日付"と "時間"の場合にも当てはまりますか? Microsoftの参照(リンク先)、日付と時刻は「タイムゾーンのオフセット認識と保存」ではありません。

これは、datetime2のようにUTC時刻に格納されていないことを意味しますか? UTC時刻との変換についても心配する必要はありますか?

+1

Sql Azureは常にUTCのタイムゾーンで実行されます。https://blogs.msdn.microsoft.com/cie/2013/07/29/manage-timezone-for-applications-on-windows-azure/ –

+1

「時刻"データ型では、時間はタイムゾーンの認識なしであり、24時間制に基づいています。 –

答えて

0

SQL Azureデータベースは常にUTC時間を使用します。そのため、datetimeデータ型は使用しないでください。代わりにdatetimeoffsetを使用してください。

また、getdate()を使用する代わりにsysdatetimeoffset()を使用してシステム日付を取得する必要があります。

データベーステーブルから日付を取得するときは、hereのように "AT TIME ZONE"を使用する必要があります。

これが役に立ちます。アルベルトの答えを補完するために

よろしく、

アルベルトMorillo

+0

ありがとうございましたが、私は "時間"データ型を参照していました。それはUTC時代にも保存されていますか? – Windhoek

1

、それはデータ型の質問よりも多くのデータ収集質問です。

データ型ではデータの前提はありません。 timeまたはdateとして登録された変数は、SQLクエリエンジンの単なる仕様です。これは、エンジンに物理的にデータを格納する方法を伝え、データに対して実行可能な有効な一連の操作を提供します。その結果、変数timeは、それ自体がタイムゾーンを想定しません。 UTC時間、PST時間、または任意の時間帯を含むことができます。変数dateと同じです。

質問に戻ると、UTC時間への変換の必要性はデータ取得方法によって異なります。 AzureのビルトインGETDATE()メソッドを使用してテーブルを埋めると、データはUTCになり、データ型はdatatimeになります。 date変数とtime変数を抽出するには、CONVERT演算子を使用できます。

関連する問題