アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【PostgreSQL
【PostgreSQL】UTC時刻表現文字列をJSTに変換してINSERTする
POSTED BY
2023-09-17

RSSやJSON取得時、時刻表現はUTC(グリニッジ標準時)文字列であることがよくある。

published_at:2021-09-15T03:47:18+00:00

これはそのままPostgreSQLのTIMESTAMP型としてINSERTできるが、普通に3時47分と扱われる。

CREATE TABLE tmtest (tm TIMESTAMP);

INSERT INTO tmtest VALUES('2021-09-15T03:47:18+00:00');

SELECT * FROM tmtest;

         tm
---------------------
 2021-09-15 03:47:18
(1 row)

日本標準時JST(+9時間)としてINSERTするには、timezone関数つきで以下のように挿入する。

INSERT INTO tmtest values(timezone('JST','2021-09-15T03:47:18+00:00'));

SELECT * FROM tmtest;

         tm
---------------------
 2021-09-15 03:47:18
 2021-09-15 12:47:18
(2 rows)

今度は無事+9時間としてINSERTできた。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】