回答:
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();
列が日時タイプの場合。
「作成」が日時タイプの場合
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE()は「2013-05-09 00:00:00」も意味します
列にインデックスがあり、その列に関数が適用されている場合、インデックスが機能せず、テーブル全体のスキャンが発生し、クエリが非常に遅くなります。
インデックスを使用して日時を比較するにはを今日/現在の日付には、以下を使用できます。
OPのソリューション:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
今日のデータを取得するサンプル:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
または略してBETWEENを使用します
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
以下のコードは私のために働きました。
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today
SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();
json_date ["2011年5月11日"]
すべての行を返し、ifステートメント内でphp datediff関数を使用できますが、サーバーに余分な負荷がかかります。
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
CURDATE()
時間ではなく日付のみを返す