выберите запрос справка обновление - PullRequest
0 голосов
/ 08 января 2019

У меня есть запрос на выборку для ежедневных данных, приведенный ниже, как мне изменить, чтобы он вытягивал данные за весь месяц

select *
from BAU_SDT_INV_USER
where trunc(CHECKED_DATE) = to_date('2018/12/18', 'YYYY/MM/DD')

Ответы [ 4 ]

0 голосов
/ 08 января 2019

Если производительность не является ключевым моментом для вашего запроса, просто trunc по месяцам на обоих концах сравнения:

select *
from BAU_SDT_INV_USER
where trunc(CHECKED_DATE, 'mm') = trunc( to_date('2018/12/18', 'YYYY/MM/DD'), 'mm')
0 голосов
/ 08 января 2019

Может как то так?

select * from BAU_SDT_INV_USER 
where CHECKED_DATE >= to_date('2018/12/01', 'YYYY/MM/DD')
  and CHECKED_DATE < to_date('2019/01/01', 'YYYY/MM/DD')
0 голосов
/ 08 января 2019
select *
from BAU_SDT_INV_USER
where trunc(CHECKED_DATE) BETWEEN to_date('2018/12/01', 'YYYY/MM/DD')  
  AND to_date('2018/12/31', 'YYYY/MM/DD')

Более индексный дружественный подход будет

select *
from BAU_SDT_INV_USER
where CHECKED_DATE between ADD_MONTHS(sysdate, -1) and sysdate

РЕДАКТИРОВАТЬ Пожалуйста, обратите внимание, что между оговорками включительно. Вы также можете использовать

select *
from BAU_SDT_INV_USER
where CHECKED_DATE >= ADD_MONTHS(to_date(:inputDate, 'YYYY/MM/DD'), -1)  
  and CHECKED_DATE < TO_DATE(:input_Date,'YYYY/MM/DD'); 
0 голосов
/ 08 января 2019

Если вы хотите полный месяц в Oracle:

where checked_date >= date '2018-12-01' and
      checked_date < date '2019-01-01'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...