sql日期相关查询

时间:2016-04-18 21:01:30

标签: mysql sql

我有下表,其中有一行。当我使用以下查询时:

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);

2 个答案:

答案 0 :(得分:2)

如果您的chk_in列类型为date,请使用 -

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

答案 1 :(得分:1)

使用适当的日期格式。假设chk_indate,没有时间成分:

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上使用索引进行查询。