web-dev-qa-db-ja.com

MySQLでは、今日と同等以上の日時

フォローするための最良の方法は何ですか。

SELECT * FROM users WHERE created >= today;

注:作成済みは日時フィールドです。

147
n00b
SELECT * FROM users WHERE created >= CURDATE();

しかし、私はあなたがcreated < todayを意味すると思います

281
Clodoaldo Neto
SELECT * FROM myTable WHERE  DATE(myDate) = DATE(NOW())

続きを読む: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html

69
Edmhs
SELECT * FROM users WHERE created >= NOW();

列が日時タイプの場合.

29
Shakti Singh

'created'が日時タイプの場合

SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);

CURDATE()は「2013-05-09 00:00:00」も意味します

13
bartolinho
SELECT * FROM users WHERE created >= now()
3
Silx

マークされた答えは誤解を招きやすいです。述べられた質問はDateTimeですが、必要とされたのはCURDATE()だけだったと述べました。

これに対する最短で正しい答えは、次のとおりです。

SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;
2
JeffMan

列にインデックスがあり、その列に関数が適用されている場合、インデックスは機能せず、テーブル全体のスキャンが行われるため、クエリが非常に遅くなります。

インデックスを使用して datetime を今日/現在の日付と比較するには、次のようにします。

select * from users
where created >= CONCAT(CURDATE(), ' 00:00:00') && created < CONCAT(CURDATE(), ' 23:59:59')
2
Bsienn

以下のコードは私のために働きました。

declare @Today date

Set @Today=getdate() --date will equal today    

Select *

FROM table_name
WHERE created <= @Today
0
Rob Fahndrich