如何将mysql datetime列转换为日期?

时间:2013-07-25 20:34:20

标签: mysql

以下是我的表格设置方式的说明(以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()

我不知道从哪里开始......任何想法都会非常感激:)

为了重新澄清,我想选择今天的日期与我的日期时间类型列的日期部分匹配的行。

4 个答案:

答案 0 :(得分:1)

试试这个

  select * from alerts_to_send 
  where  DATE_FORMAT(date_to_send,'%m-%d-%Y') = DATE_FORMAT(now(),'%m-%d-%Y')

fiddle

答案 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