2016-04-18 27 views
0

私は次のテーブルと1つの行を持っています。私はこの次のクエリを使用する場合: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); 
+0

私はあなたのCREATEテーブルステートメントを実行することはできません。 「4-FEB-14」を挿入すると、MySQLはこの日付形式を認識できないため、エラーが表示されます。 – Tin

答えて

2

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

は、日付のための適切なフォーマットを使用しuse- chk_inのあなたの列の型が、その後dateある場合。 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にインデックスを使用できるようになりをクエリ。