質問: '2014-12-31'; ``` これだと本当に2014-12-31のuser_cntのデータ1行のみ取得できます ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/9bb03601b84496208e76cf5e30d235ce.png) これを2年間、5年間など指定した年数の同じ日付のuser_cntを取得して表示させたいです 変数xに「2」年間、「5」年間といった風に何年分取得したいのかの、数字のみの変数はあります ちなみに今は具体的な数字を入れてますが'2014'と'2014-12-31'は変数になります イメージとしては2014(変数)年(2014-12-31)から3(変数)年間取得したいってしたら 2014 2014-12-31 1050 2015 2015-12-31 2010(適当な数字です) 2016 2016-12-31 3020(適当な数字です) と3行表示できればいいです 説明下手ですみません できたら同じ要領で 2014-04-01から3か月取得したいとしたら 2014-04-01のuser_cnt 2014-05-01のuser_cnt 2014-06-01のuser_cnt と3行取得したいです アドバイスおねがいいたします
回答: PostgreSQL による日付・時刻・時間の計算・演算のまとめ がわかりやすいと思います。 ``` SELECT '2014' as TRANSITION_YEAR, sum_date as TRANSITION_COUNT ,user_cnt as MEMBER_NO FROM tt_s_umlist WHERE sum_date >= CAST('2014-12-31' AS DATE) AND sum_date <= CAST('2014-12-31' AS DATE) + CAST('2 months' AS INTERVAL); ``` 追記 ``` AND sum_date < CAST('2014-12-31' AS DATE) + CAST('2 months' AS INTERVAL); ``` `<` と間違えて `<=` と書いていました。