My Photo

« certutilでBASE64エンコード/デコード | Main | MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE »

February 04, 2015

列の値を使って日時に「+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」カテゴリの記事

SQL」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/61086193

Listed below are links to weblogs that reference 列の値を使って日時に「+n日」する:

« certutilでBASE64エンコード/デコード | Main | MySQLメモ017:CREATE文、AUTO_INCREMENT、ENGINE »

May 2017
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof