Проблема с датой Query - SQL Server 2008 - PullRequest
1 голос
/ 12 апреля 2010

У меня есть эта дата и время:

дата1: 10.04.2010 - время: 08: 09

дата2: 11.04.2010 - время: 08: 14

мне нужно показать все даты между 10.04.2010, 06:00 и 11.04.2010, 6: 00

я пишу это: select * from MyTbl where ((Tdate BETWEEN '20100410' AND '20100411') and (Ttime BETWEEN '06:00' and '06:00'))

но я получаю пустую таблицу

Спасибо заранее

Ответы [ 4 ]

3 голосов
/ 12 апреля 2010

Если оба столбца имеют дату и время, просто добавьте их, чтобы выполнить «правильный» запрос диапазона

where Tdate +Ttime BETWEEN '2010-04-10 06:00:00' AND '2010-04-11 06:00:00'
1 голос
/ 19 февраля 2013

Найти общее количество заказов, которые были размещены в каждом месяце 1987 года.

SELECT COUNT(OrdId) AS TotalNumberOfOrder FROM OrderABC WHERE OrdDate > '1987-01-01' AND OrdDate < '1987-12-31';

или

SELECT COUNT(OrdId) AS TotalNumberOfOrder FROM OrderABC WHERE OrdDate BETWEEN '1987-01-01' AND '1987-12-31'; 
1 голос
/ 12 апреля 2010

Это не правильно.

Что возвращает ваш набор результатов, так это все записи, которые действительны в период с 10/04/2010 06:00 - 10/04/2010 06:00 или 11/04/2010 06:00 - 11/04/2010 06:00 .

(что означает, что для извлечения записей есть ровно 2 действительные минуты).

Вам необходимо отфильтровать по полной дате, включая время.

0 голосов
/ 12 апреля 2010

Я думаю, что вы ищете это:

select * 
from MyTbl 
where (Tdate = '20100410' AND Time >= '06:00') 
   OR (TDATE > '20100410' AND TDATE < '20100410')
   OR (Tdate = '20100411' AND Time <= '06:00')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...