フォローするための最良の方法は何ですか。
SELECT * FROM users WHERE created >= today;
注:作成済みは日時フィールドです。
SELECT * FROM users WHERE created >= CURDATE();
しかし、私はあなたがcreated < today
を意味すると思います
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
続きを読む: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
SELECT * FROM users WHERE created >= NOW();
列が日時タイプの場合.
'created'が日時タイプの場合
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE()は「2013-05-09 00:00:00」も意味します
SELECT * FROM users WHERE created >= now()
マークされた答えは誤解を招きやすいです。述べられた質問はDateTime
ですが、必要とされたのはCURDATE()
だけだったと述べました。
これに対する最短で正しい答えは、次のとおりです。
SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;
列にインデックスがあり、その列に関数が適用されている場合、インデックスは機能せず、テーブル全体のスキャンが行われるため、クエリが非常に遅くなります。
インデックスを使用して datetime を今日/現在の日付と比較するには、次のようにします。
select * from users
where created >= CONCAT(CURDATE(), ' 00:00:00') && created < CONCAT(CURDATE(), ' 23:59:59')
以下のコードは私のために働きました。
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today