2013-06-18 3 views
-2

У меня есть таблица для запросов на выход с датой начала и окончания. Я хочу отображать записи между датой начала и датой окончания, которые соответствуют только сегодня. Есть ли способ отображать сегодняшние записи только между диапазоном дат?SQL-дисплей сегодня только между датой начала и датой

Затем мне нужно сделать то же самое в отдельном запросе sql для завтра.

+3

Этот вопрос не показывает никаких исследований. Очень важно сделать домашнее задание **. Расскажите нам, что вы нашли, и *** почему *** это не соответствовало вашим потребностям. Это демонстрирует, что вы потратили время, чтобы попытаться помочь себе, это избавляет нас от повторения очевидных ответов и, прежде всего, помогает вам получить более конкретный и релевантный ответ. [FAQ] (http://stackoverflow.com/questions/how-to-ask). – Kermit

+0

Отъезд http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap/325964#325964 –

+0

Я уже пробовал: CAST (CONVERT (VARCHAR, GETDATE(), 101) AS DATETIME) МЕЖДУ СТАРТИНГОМ И ЭНДИНГОНОМ Это слишком много. Я пробовал: startingon <= CAST (CONVERT (VARCHAR, GETDATE(), 101) AS DATETIME) и CAST (CONVERT (VARCHAR, GETDATE(), 101) AS DATETIME) user2498035

ответ

1
SELECT * 
FROM MyTable 
WHERE Date() >= StartDate 
    AND Date() =< EndDate 
    AND DateField = Date() 

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

ВЫ МОЖЕТЕ иметь возможность использовать оператор BETWEEN для очистки этого (например, даты() МЕЖДУ StartDate и EndDate), но я не уверен в этом.

+0

Правильно, это не сработает, потому что есть дата начала и дата окончания, поэтому мне нужно отобразить все, что соответствует сегодняшней дате, только если оно находится между датой начала и датой окончания. – user2498035

+0

См. Мое редактирование для обновленного кода, который должен работать. –

+0

Итак, откуда взялось значение даты? – user2498035

Смежные вопросы