Calender
Sun Mon Tue Wed Thu Fri Sat
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 2018 >>
広告
SEARCH

SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
LINKS
PROFILE
OTHERS
SKYPE
PC: skype.jojo.jp
chat
iPad: iphone.jojo.jp
chat call
THANKS



本日:
昨日:
多言語
広告
 ▼▲ 作業日報 ▼△
    What's under the hood?
<< git で特定ファイルのみを追加 | main | PostgreSQL 行->配列 変換 >>
PostgreSQL interval型のcast方法
PostgreSQLで日付型を演算すると interval型 になる場合がありますが、この型は普通にキャストや演算で順数に変換することはできません。
EXTRACT関数を用いて日付や秒などに変換してやる必要があります
EXTRACT(day from ((日付2 - DATE '1970-01-05')/7)) as 週;
※月曜日始まりの1970年からの通算の週番号を算出します


リンク:
PostgreSQL|データ型書式設定関数
PostgreSQL|CREATE CAST
参考:

上のSQLの場合「日付2」がtimestamp型だったのでInterval型になりますが、date型の場合はInteger型になるようです(暗黙のキャストルール)
検証SQL:
 select ((current_date - DATE '1970-01-05')/7) .. 戻値:Integer型
 select ((current_timestamp - DATE '1970-01-05')/7) .. 戻値:Interval型

それじゃ「日付2」をdate型にキャストしてもよかったのか、、と思ったけどもう直したからやらない
| - | 11:37 | comments(0) | trackbacks(0) |









http://blog.jojo.jp/trackback/1424913