выбор времени между диапазоном для разных и одинаковых дат - PullRequest
0 голосов
/ 20 февраля 2019

Привет, у меня есть таблица, в которой отдельно хранятся дата и время.два столбца: Ddate (тип даты) и Dtime (тип времени).В нем также есть другие столбцы, такие как SenderName, Sendercounty, Senderdetails.Мне нужно выбрать эти детали для диапазона дат между временем и датой.например, если выбранная дата от 01/02/2019 до 03/02/2019 и Dtime с 17:00:00 до 05:00:00.Как убедиться, что карты времени начала и даты начала и карты времени окончания и даты окончания возвращают все промежуточные записи в моем запросе.У меня был этот запрос, который работал нормально, так как раньше мы всегда выбирали только одну дату, но теперь нам нужен диапазон дат, и это не удается.

select Sender.SenderName,           
count(product.id) as totalProduct,                      
Sender.Dtime as Ttime,                      
Sender.Ddate                        
from Sender                  
inner join  product                 
on Sender.productId = product.id
where (product.Type in ('s','w','q') and    product.status='a')                                     
                    and Sender.Ddate between '2019-02-01'  and  '2019-02-04'
                    and Sender.Dtime between  '17:00:00' and '05:00:00'                     
                    group by product.id order by Sender.Dtime asc

1 Ответ

0 голосов
/ 20 февраля 2019

and Sender.Dtime between '17:00:00' and '05:00:00' не может вернуть строки, потому что 5 - конец вашего диапазона - меньше 17. between недостаточно умен, чтобы знать, что вы работаете со временем обтекания.

Похоже, вам нужно что-нибудь между 17:00 в один день и 05:00 на следующий день.Для этого вы можете попробовать

 and ( Sender.Dtime >= '17:00:00' OR Sender.Dtime <= '05:00:00' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...