2017-01-05 2 views
-1

мне нужно искать данные, основанные на диапазон даты и соответствующих записей в базе данных MS, я использую ниже SQL запросаКак получить данные из таблицы, используя диапазон дат и wild card в sql?

select * 
from table_name 
where column_name1 between 'from date' and 'to date' 
    and column_name2 like '%-R' 

Это не работает, не могли бы вы кто-то объяснить, почему это не работает, и пусть я знаю, что это их другой путь.

+5

Пожалуйста, не говорите _It не работает. Это крайне расплывчато и бесполезно в диагностике проблемы. Кроме того, укажите сообщение об ошибке, если оно есть, или укажите, почему вы считаете, что оно не работает. Наконец, расскажите нам, как попытаться решить эту проблему и почему она по-прежнему не работает. – dfundako

+0

Каков шаблон поиска, который вы ищете, и каков тип данных column_name1? вы уверены, что используете правильный формат даты? – LONG

+2

Ваш предикат довольно подозрительный. Я сомневаюсь, что вы ищете строки между двумя значениями. –

ответ

0

Вот пример того, что форматирование я использую для поиска между 2 датами:

-- try not to use * in your select. Pick the columns you actually need. 

Select * from table_name 
where column_name1 between '2016/12/25' and '2016/12/27' 
and column_name2 like '%-R' 

Я на самом деле не уверен, что не работает именно поэтому я не могу сказать вам, как это исправить, только дайте вам пример. Даты, которые вы ввели, должны быть отформатированы так, чтобы они соответствовали столбцу даты в вашей таблице.

+0

Использование дат в формате 'dd/MM/yyyy' или' MM/dd/yyyy' задает проблемы. Лучше использовать что-то менее двусмысленное, как 'yyyy/MM/dd' – iamdave

+0

Dave. Я согласен, и я обычно делаю так, как вы предлагали. Я также заявил, что это зависит от форматирования его столбца, но я изменю свой код, чтобы отразить наилучшую практику. – bwilliamson

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