我在MySQL数据库中有两列。
一个是DATE格式,如2014-01-26,另一个是DATETIME格式:2014-01-25 17:19:07。
我需要应用TIMEDIFF(2014-01-26,2014-01-25 17:19:07)函数,但它要求两个变量都采用DATETIME格式。我怎样才能将2014-01-26转换为2014-01-26 00:00:00?
答案 0 :(得分:1)
您可以使用date_format()
mysql> select
TIMEDIFF(date_format('2014-01-26','%Y-%m-%d %H:%i:%s'), '2014-01-25 17:19:07')
as diff;
+----------+
| diff |
+----------+
| 06:40:53 |
+----------+
1 row in set (0.00 sec)
mysql> select date_format('2014-01-26','%Y-%m-%d %H:%i:%s') as date;
+---------------------+
| date |
+---------------------+
| 2014-01-26 00:00:00 |
+---------------------+
1 row in set (0.00 sec)
答案 1 :(得分:1)
您始终可以将日期转换为日期时间
select timediff(cast(<yourDateColumn> as Datetime), <yourDatetimeColumn>)
但我甚至不确定你是否需要施放(取决于你的mysql版本),我可能会误解文档,但我们可以阅读
在MySQL 5.1.18之前,将DATE值与DATETIME进行比较 值,DATETIME值的时间部分被忽略,或者 比较可以作为字符串比较来执行。从MySQL开始 5.1.18,通过将时间部分添加为&00; 00:00:00&#39;,将DATE值强制转换为DATETIME类型。要模仿旧行为,请使用CAST() 函数使比较操作数被如前处理。 例如: