в чем разница между установкой даты с датой выписки и датой между d1 и d2 в sql

125
7

Я написал два запроса, которые, как я ожидал, дадут мне одни и те же данные.

Запрос 1

select transaction, count(*)
from table
where create_date between to_Date('02/11/2017','MM/DD/YYYY') and to_date('02/17/2017','MM/DD/YYYY')
group by transaction

Запрос 2

select transaction, count(*)
from table
where extract(day from create_date) between 11 and 17
and extract(month from create_date)=2
and extract(year from create_date)=2017
group by transaction

Результаты запроса 1

Transaction1 1155
Transaction2 333
Transaction3 5188

Результаты запроса 2

Transaction1 1422
Transaction2 415
Transaction3 6155

почему я получаю разные результаты?

спросил(а) 2021-01-19T11:32:08+03:00 6 месяцев, 1 неделя назад
1
Решение
89

Первый запрос получает значения, в которых значения находятся между 2017-02-11 00:00:00 и 2017-02-17 00:00:00.

Второй запрос получает значения, где значения находятся между 2017-02-11 00:00:00 и 2017-02-17 23:59:59.

Итак, если есть значения между 2017-02-17 00:00:01 и 2017-02-17 23:59:59 то они будут включены в COUNT второго запроса, но не в первую очередь.

Пытаться:

select transaction, count(*)
from table
where create_date >= DATE '2017-02-11'
AND create_date < DATE '2017-02-18'
group by transaction

или же

select transaction, count(*)
from table
where TRUNC( create_date ) BETWEEN DATE '2017-02-11' AND DATE '2017-02-18'
group by transaction

(Примечание: более поздний запрос не будет использовать индексы для create_date и для этого потребуется индекс на основе функций на TRUNC( create_date ).)

ответил(а) 2021-01-19T11:32:08+03:00 6 месяцев, 1 неделя назад
45

TO_DATE - преобразовать String в Datetime, а внутреннее предложение inter работает над HH: MI: SS в вашем первом запросе, для того, чтобы сделать тот же результат от второго, нужно позаботиться о HH: MI: SS во втором запросе

ответил(а) 2021-01-19T11:32:08+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема