質問するログイン新規登録

回答編集履歴

2

追加

2017/06/12 03:47

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -18,4 +18,13 @@
18
18
  AND sum_day = 31
19
19
  AND sum_year >= 2010
20
20
  AND sum_year <= to_char(date '20100101' + INTERVAL '2 YEAR','YYYY')::int;
21
- ```
21
+ ```
22
+ > 同じ具合で何か月後、何日後はsum_dateを使うべきでしょうか?
23
+
24
+ 日付に関する計算は、date属性を使った方が間違いが少なくて済みます。
25
+ 数値でも日付に変換すれば日付と同じ様に使えます。
26
+ ```sql
27
+ select * from t_sumlist
28
+ where sum_date=(sum_year ||'-'|| sum_month ||'-'|| sum_day)::date;
29
+ ```
30
+

1

変更

2017/06/12 03:46

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -8,7 +8,9 @@
8
8
  AND sum_year <= 2010 + 2;
9
9
  ```
10
10
 
11
- intervalをお使いになるならdate,timestampにしてあげればできます。
11
+ intervalをお使いになるならdate(YYYYMMDD),timestampにしてあげればできます。
12
+ intervalで2年後を作成後、年の部分だけ取り出してintにキャストしています。
13
+ 結果的には上と一緒になります。
12
14
  ```
13
15
  SELECT sum_year as T_DATE ,user_cnt as M_NO
14
16
  FROM t_sumlist