2016-04-18 3 views
0

У меня есть следующая таблица и одна строка в ней. Когда я использую этот следующий запрос:sql date related query

SELECT FROM ROOM WHERE chk_in = '7-APR-14';

не показывает никаких данных. Любая идея, где я иду не так?

CREATE TABLE room (
r_id number(5), 
book_date date, 
chk_in date, 
chk_out date, 
r_ct_id number(6), 
booking_id number(5), 
c_id number(9), 
primary key (r_id), 
foreign key (booking_id) references booking_info(booking_id), 
foreign key (c_id) references customer(c_id) 
); 


INSERT INTO room VALUES (61276,'4-FEB-14','7-APR-14','4-APR-14',87689,19857,987987987); 
+0

Я даже не могу запустить ваш оператор таблицы CREATE. Вставка «4-FEB-14» дает мне ошибку, потому что MySQL не смог распознать этот формат даты. – Tin

ответ

2

Если тип столбца chk_in является date то пользование-

SELECT FROM ROOM WHERE chk_in = STR_TO_DATE('7-APR-14', '%d/%l/%Y'); 
1

Используйте правильный формат для даты. Предполагая, что chk_in является date, без временной составляющей:

WHERE chk_in = '2014-04-07' 

Если есть время компонент, использовать неравенство:

WHERE chk_in >= '2014-04-07' and 
     chk_in < date_add('2014-04-07', interval 1 day) 

неравенство делает возможным для MySQL, чтобы использовать индекс chk_in для запрос.