130

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

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

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

4

7 に答える 7

222

start_date一重引用符で囲んで文字列にする場合は、backtick代わりに使用してください

SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';
于 2012-11-19T05:49:22.783 に答える
25

あなたのステートメントでは、start_dateという文字列を時刻と比較しています。start_dateが列の
場合、次のいずれかである必要があります

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

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


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

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

お役に立てれば。

于 2012-11-19T06:22:45.107 に答える
3

これは言及されていなかったので追加します。

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

それが実際に私にとってうまくいくからです。両方の比較値に date() 関数を追加します。

于 2020-10-13T10:59:15.587 に答える
2

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

SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';
于 2019-06-19T09:22:26.883 に答える