問題:
PostgreSQLデータベースでタイムゾーンオフセットを使用して現在の時刻を取得したい。
解決策:
CURRENT_TIME関数を使用して、現在の時間とタイムゾーンの情報を取得します。作成するクエリは次のとおりです。
SELECT CURRENT_TIME;
クエリの結果は次のとおりです。
16:10:11.232455-05
ディスカッション:
PostgreSQL関数CURRENT_TIME
PostgreSQLが実行されているマシンの現在の時間とタイムゾーンのオフセットを返します。 'hh:mm:ss.nnnnnn +/- tz'の値として指定されます フォーマット。この形式:
- hh は2桁の時間です。
- mm 2桁の分です。
- ss は2桁の秒です。
- nnnnnn 0から6までの小数秒数(つまり、精度)を定義します。
- + tz または-tz UTCからのプラスまたはマイナスのタイムゾーンオフセットです。
CURRENT_TIME
括弧はありません。ただし、特定の精度で時間を表示する場合は、角かっこを追加して0〜6の整数を囲むことができます(「0」引数は小数秒を返しません。「1」は小数秒を返します(例:1小数点以下の桁数)など。これにより、宣言された小数秒数とタイムゾーンオフセットを含む時刻が返されます。次の例を見てください:
SELECT CURRENT_TIME(2) ;
クエリの結果は次のとおりです。
16:10:11.23-05
引数として2を指定したため、この結果には2桁の小数秒が含まれています。タイムゾーンオフセットは、時刻がUTCより進んでいるか遅れているかに応じて、正または負(+または-)として表示されます。
この関数によって返される時間は、トランザクション中または単一のクエリ中に変更されません。常にトランザクションが開始された時刻です。