2013-07-07 3 views
1

У меня есть запрос:Mysql между датами и InnoDB

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN ? AND ? 

когда END_TIME является:

`END_TIME` datetime default NULL, 

Эта остановка запроса работает должным образом, когда я двигаю таблицу работы с:

ENGINE=InnoDB 

переходит из MyISAM в InnoDB, вызывая проблемы?

+0

Что значит «перестало нормально работать?» – jcsanyi

+0

запрос прекращает возвращать результаты в выбранном между datetime – Yosefarr

+0

запрос выполняется каждые 30 секунд, а между параметрами current_time и current_time-30sec: результаты не выбраны сейчас – Yosefarr

ответ

0

Ну, вы изменили механизм базы данных, теперь null обрабатывается по-другому.

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN '2013-01-01 AND ? 

допустимый запрос

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN '2013-01-01' AND null 

всегда будет возвращать 0 rowns

переписать запрос

SELECT * FROM MY TABLE WHERE END_TIME BETWEEN ? AND now() 

или

SELECT * FROM MY TABLE WHERE END_TIME >=0