DB

タイムゾーンがUTCであるSQL Database上で 現在日時を東京時間で表示してみた

Azure Potal上でSQL Databaseを作成する際、以下の手順で作成すると、SQL DatabaseのタイムゾーンはUTC(協定世界時)となり、日本時間より9時間前の時刻となる。

Azure Potal上でSQLデータベースを作成してみたAzure Portal上では、常に最新の安定したバージョンの SQL Serverデータベースである「SQL データベース」が利用でき...

今回は、ローカル SQL ServerとAzure SQL Databaseそれぞれで、タイムゾーンや現在日時を確認し、Azure SQL Database上での現在日時を、UTCから日本時間に変換してみたので、その結果を共有する。

なお、以下のサイトに記載のように、Azure SQL Managed Instanceを利用した場合は、タイムゾーンを指定してSQL Databaseを作成することができる。
https://learn.microsoft.com/ja-jp/azure/azure-sql/managed-instance/timezones-overview?view=azuresql

前提条件

下記記事のように、A5M2を利用してSQL Serverに接続できていること。

A5M2を利用して各DBに接続してみたA5M2(A5:SQL Mk-2)は、SQL文の入力支援やER図作成などの機能を備えていて、Oracle、MySQL、PostgreSQ...

また、下記記事のように、Azure Potal上でSQL Databaseを作成できていること。

Azure Potal上でSQLデータベースを作成してみたAzure Portal上では、常に最新の安定したバージョンの SQL Serverデータベースである「SQL データベース」が利用でき...

タイムゾーンの確認

ローカル SQL ServerとAzure SQL Databaseそれぞれで、タイムゾーンを確認した結果は以下の通りで、ローカル SQL Serverのタイムゾーンは日本時間、Azure SQL DatabaseのタイムゾーンはUTCであることが確認できる。

<ローカル SQL Server>
タイムゾーン確認(ローカル)

<Azure SQL Database>
タイムゾーン確認(Azure)

タイムゾーン一覧の表示

SQL Serverでサポートしているタイムゾーンは、sysスキーマのtime_zone_infoテーブルで確認できる。以下は、ローカル SQL Serverでタイムゾーンを表示した結果となる。

<15件分のタイムゾーンを表示した結果>

タイムゾーン一覧確認(15件分)

<UTCと日本時間のタイムゾーンを表示した結果>

タイムゾーン一覧確認(UTC,東京)



「Envader」はLinuxコマンドやDatabase SQL等のスキルを、環境構築不要で習得できる学習サイトだった「Envader」は、ITエンジニアとしてよく使うLinuxコマンドやDatabase SQL等のスキルを、解説を読んだ上で、問題を解き...

システム日時の確認

ローカル SQL ServerとAzure SQL Databaseそれぞれで、システム日時を確認した結果は以下の通りで、ローカル SQL Serverでは日本時間が、Azure SQL Databaseでは日本時間の9時間前の値が表示されることが確認できる。なお、下記画像は、2023/5/3 19:20に実行した結果となっている。

<ローカル SQL Server>
現在時間確認(ローカル)

<Azure SQL Database>
現在時間確認(Azure)

現在日時をUTCから日本時間に変換して表示

AT TIME ZONE関数を利用することで、Azure SQL Database上での現在日時を、UTCから日本時間に変換することができる。その結果は、以下の通り。なお、下記画像は、2023/5/3 19:21に実行した結果となっている。

現在時間をUTCから日本時間に変換

要点まとめ

  • Azure SQL Database上での現在日時を、UTC(協定世界時)から日本時間に変換するには、AT TIME ZONE関数を利用すればよい。