2015-01-21 3 views
0

Я пытаюсь запустить запрос с 3 различными полями. Я хочу, чтобы он возвращал все учетные записи, соответствующие первому диапазону, возвращал все учетные записи, соответствующие второму диапазону, и третьему. Я попытался использовать and, но получаю даты за пределами диапазона.SQL-запрос для поиска 3 поля даты

select 
    * 
from 
    Permits 
where 
    created between '1/1/2015' and '1/21/2015' 
    and updated between '1/1/2015' and '1/21/15' 
    and noResponseDateSet between '1/1/15' and '1/21/15' 
order by 
    alarmNo 

Спасибо за помощь мне

ответ

1

стандартных форматов даты использования ISO:

select created, updated, noResponseDateSet 
From Permits 
where created between '2015-01-01' and '2015-01-21' and 
     updated between '2015-01-01' and '2015-01-21' and 
     noResponseDateSet between '2015-01-01' and '2015-01-21' ; 

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

0

CONVERT может сделать грязный синтаксический анализ для вас. Он примет 1/1/2015 или 01-01-2015 или большинство других комбинаций.

select * 
From Permits 
where created between CONVERT(DATETIME,'1/1/2015') and CONVERT(DATETIME,'1/21/2015') 
and updated between CONVERT(DATETIME,'1/1/2015') and CONVERT(DATETIME,'1/21/15') 
and noResponseDateSet between CONVERT(DATETIME,'1/1/15') and CONVERT(DATETIME,'1/21/15') 
order by alarmNo 
+0

Или, только используя правильный формат даты в запросе. Никакое преступление не предназначено, но это имеет такое же значение, как и «Верх» («a»), а не просто «A» – Siyual

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