web-dev-qa-db-ja.com

日付でより大演算子を使用する方法は?

ここで何が起こっているのか分かりません。以下は、phpMyAdminからのクエリです。

SELECT * FROM `la_schedule` WHERE 'start_date' >'2012-11-18';

しかし、開始日2012-11-01のレコードを含む、テーブル内のすべてのレコードが常に返されます。何が得られますか?

91
Clinton J

start_dateが一重引用符で囲まれているため、文字列になります。代わりにbacktickを使用してください

SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';
169
John Woo

ステートメントでは、start_dateという文字列を時間と比較しています。
start_dateが列の場合、次のいずれかでなければなりません


  SELECT * FROM `la_schedule` WHERE start_date >'2012-11-18';
 

(アポストロフィなし)または


SELECT * FROM `la_schedule` WHERE `start_date` >'2012-11-18';

(バックティック付き)。

お役に立てれば。

21

これを試して。

SELECT * FROM la_schedule WHERE `start_date` > '2012-11-18';
11
Faizan Khattak

私の場合、私のコラムはすべてのレコードを提供し続ける日付時刻でした。私がしたことは、時間を含めることです、下の例を参照してください

SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';
0
beatusfk