列の値を使って日時に「+n日」する
テーブルtblにtimestamp型の列dtと文字列型の列nがある。nは文字列型だけど入ってる値は"1"とか"12"のような数字のみからなる文字列。
nの値を使って「dt+n日」という計算をしたい。例えばdtの値が "2015-01-01 12:30:45" でnの値が "3" ならば
"2015-01-01 12:30:45"+3日で "2015-01-04 12:30:45" という結果が欲しい。
最初、以下のようにしたが構文エラーになった。
SELECT dt + interval (n || ' days') FROM tbl
次のようにしたら欲しい結果が得られた。
SELECT dt + CAST(n || ' days' AS interval) FROM tbl
もしnが整数型ならこうかな。
SELECT dt + CAST(TO_CHAR(n, 'FM9999') || ' days' AS interval) FROM tbl
参考ページ:
Postgresでの時間加算select current_timestamp + interval '1 hours';... - Yahoo!知恵袋
« certutilでBASE64エンコード/デコード | Main | MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE »
「PostgreSQL」カテゴリの記事
- CakePHPのインストール(2015.06.14)
- PHPからPDOでPostgreSQLに接続する(2015.06.09)
- PostgreSQLのインストール その2(2015.03.29)
- PostgreSQLのインストール その1(2015.03.23)
- 列の値を使って日時に「+n日」する(2015.02.04)
「SQL」カテゴリの記事
- 列の値を使って日時に「+n日」する(2015.02.04)
- TIMESTAMP WITH TIME ZONE型(2014.07.20)
- PL/pgSQL(2014.02.16)
- PostgreSQLで自作の関数を定義する(2014.02.15)
- PostgreSQLのPREPARE(2014.02.15)
The comments to this entry are closed.
« certutilでBASE64エンコード/デコード | Main | MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE »
Comments