最好的方法是:
SELECT * FROM users WHERE created >= today;
注意:created是一个日期时间字段。
答案 0 :(得分:280)
SELECT * FROM users WHERE created >= CURDATE();
但我认为你的意思是created < today
答案 1 :(得分:69)
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
了解更多: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
答案 2 :(得分:29)
SELECT * FROM users WHERE created >= NOW();
如果列是日期时间类型。
答案 3 :(得分:13)
如果'created'是日期时间类型
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE()也表示'2013-05-09 00:00:00'
答案 4 :(得分:3)
SELECT * FROM users WHERE created >= now()
答案 5 :(得分:2)
如果列具有索引并且在列上应用了函数,则索引不起作用并且会发生全表扫描,从而导致查询速度非常慢。
要使用索引并将日期时间与今天/当前日期进行比较,可以使用以下内容。
jQuery(document).ready(function(){
jQuery(document).on('click.button','button',function(e){
var eq = $(this).index('button');
e.preventDefault(); e.stopImmediatePropagation();
if($('span').eq(eq+1).length) { $('span').eq(eq+1).show().text(eq+1); }
});
});
答案 6 :(得分:2)
标记的答案具有误导性。所述问题为DateTime
,但声明所需内容仅为CURDATE()
。
最短且正确的答案是:
SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;
答案 7 :(得分:0)
以下代码对我有用。
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today
答案 8 :(得分:-1)
SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();
json_date [&#34; 05/11/2011&#34;]
答案 9 :(得分:-4)
你可以返回所有行,而不是在if语句中使用php datediff函数,尽管这会给服务器带来额外的负担。
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}