問題:
PostgreSQLで日時情報を含む文字列をタイムスタンプに変換したい。
日付、時刻、タイムゾーンの情報を含む文字列をtimestamptzデータ型に変換してみましょう。
解決策:
TO_TIMESTAMP()
を使用します 働き。作成するクエリは次のとおりです。
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
クエリの結果は次のとおりです。
new_timestamptz |
---|
2018-08-27 15:23:45 + 02 |
ディスカッション:
PostgreSQL関数TO_TIMESTAMP()
を使用します 日付と時刻のデータを含む文字列をタイムスタンプに変換する場合 データ・タイプ。この関数は2つの引数を取ります。日付と時刻を含む文字列(この例では、テキスト'2018/08/27/15:23:45
')と入力形式(この例では、‘ YYYY/MM/DD/HH24:MI:ss
’)。入力形式は、文字列内の文字をどのように変換するかを示します。上記のパターンの主な要素は次のとおりです。
- YYYY 4桁の年を表します。
- MM 2桁の月を表します。
- DD 月の2桁の日を表します。
- HH24 2桁の時間を表します(00から23まで)。
- MI 2桁の分(00から59まで)を表します。
- ss 2桁の秒(00から59まで)を表します。
日付部分の区切り文字としてスラッシュ(/)を使用し、時間部分の区切り文字としてコロン(:)を使用することに注意してください。日時パターン要素の完全なリストは、PostgreSQLのドキュメントにあります。
入力形式が文字列であることに注意してください。関数TO_TIMESTAMP()は、タイムスタンプを返します。 タイムゾーン情報を含む値。
この例では、テキストの日付と時刻'2018/08/27/15:23:45
'はタイムスタンプに変換されました 値2018-08-27 15:23:45+02
。 タイムスタンプ データ型が読みやすくなります。