SQL Server — MSSQL datetime между в PHP не работает правильно

Вот пример кода, который отлично работает в Dbvisualizer, но не работает в PHP-скрипте.

select
convert(varchar, oh.date,101),
oh.id
from oh
where oh.state=1 and convert(varchar,oh.date,104) between '17.12.2015' and '17.12.2015'
order by oh.id desc,date desc

В Dbvisualizer он возвращает строки в выбранном диапазоне дат, но в php он возвращает все записи из таблицы.
mssql.datetimeconvert не имеет никакого влияния. Где проблема?

-1

Решение

Во-первых, не конвертируйте дату в varchar для сравнения строк. Пусть SQL Server преобразует ваши строки дат в даты, чтобы можно было сравнивать даты. Во-вторых, ваш BETWEEN перечисляет те же даты, поэтому единственные возвращенные записи будут с полуночи 17.12.2015. Этот SQL предпочтительнее:

select convert(varchar, oh.date,101), oh.id
from oh
where oh.state=1 and   oh.date between '2015-12-17' and '2015-12-17'
order by oh.id desc,date desc

Если это не работает, вы можете опубликовать свой код PHP?

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector