回答編集履歴
2
追加
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
変更
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
|