以下是我的表格设置方式的说明(以sqlfiddle为单位) http://sqlfiddle.com/#!2/86a54d/2
基本上,我有两列。一个是varchar并包含一个名称。另一个是日期时间,包含带时间的特定日期。
我想选择日期时间中的日期与今天的日期相匹配的行。我尝试过像......
select * from alerts_to_send where date_to_send = now()
select * from alerts_to_send where date_to_send = curdate()
我不知道从哪里开始......任何想法都会非常感激:)
为了重新澄清,我想选择今天的日期与我的日期时间类型列的日期部分匹配的行。
答案 0 :(得分:1)
试试这个
select * from alerts_to_send
where DATE_FORMAT(date_to_send,'%m-%d-%Y') = DATE_FORMAT(now(),'%m-%d-%Y')
答案 1 :(得分:0)
您可以使用mys {的date_format
函数
select * from alerts_to_send where date_format(date_to_send, "%m/%d/%Y") = date_format(now(), "%m/%d/%Y")
以下是对date_format的引用:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
答案 2 :(得分:0)
date_format函数的替代方法,您可以将日期时间转换为日期:
select * from alerts_to_send where cast(date_to_send as date) = curdate()
答案 3 :(得分:0)
可能更短:
select * from alerts_to_send where date(date_to_send) = date(now())
但是你在使用索引时会有问题,所以最好是:
select * from alerts_to_send where date_to_send >= date(now()) and date_to_send < date(now()) + INTERVAL 1 DAY