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

回答編集履歴

2

加筆修正

2017/02/20 00:42

投稿

退会済みユーザー
answer CHANGED
@@ -5,7 +5,7 @@
5
5
  今日の日付を求める関数としてCURRENT_DATEやCURRENT_TIMESTAMPがあり、
6
6
  これらに対して`ROUND(ADD_MONTHS(CURRENT_DATE, -1), 'MONTH')`すれば
7
7
  ひとまず先月が得られるため、
8
- WHERE句で絞り込む際に
8
+ WHERE句で絞り込む際に「前月初日から前月末尾まで」という意味で、
9
9
  `TRUNC(konyubi, 'MONTH') = TRUNC(ADD_MONTHS(CURRENT_DATE, -1), 'MONTH')`
10
10
  する手もありますが、全レコードに対して演算が生じて遅くなりそうなので、
11
11
  konyubiがTIMESTAMP型なら

1

見直し

2017/02/20 00:42

投稿

退会済みユーザー
answer CHANGED
@@ -6,7 +6,7 @@
6
6
  これらに対して`ROUND(ADD_MONTHS(CURRENT_DATE, -1), 'MONTH')`すれば
7
7
  ひとまず先月が得られるため、
8
8
  WHERE句で絞り込む際に
9
- `ROUND(konyubi, 'MONTH') = ROUND(ADD_MONTHS(CURRENT_DATE, -1), 'MONTH')`
9
+ `TRUNC(konyubi, 'MONTH') = TRUNC(ADD_MONTHS(CURRENT_DATE, -1), 'MONTH')`
10
10
  する手もありますが、全レコードに対して演算が生じて遅くなりそうなので、
11
11
  konyubiがTIMESTAMP型なら
12
12
  `konyubi >= TRUNC(ADD_MONTHS(CURRENT_DATE, -1), 'MONTH') AND konyubi < TRUNC(CURRENT_DATE, 'MONTH')`