Datediff 秒 return 错误

Datediff seconds return error

我有一个变量 $date="2016-10-09 10:44:03"; 和按 date_post (TIMESTAMP CURRENT_TIMESTAMP) 排序的消息列表。 ($date 总是低于 date_post 秒)

我想 return 结果来自

SELECT *,DATEDIFF(second, $date,date_post) AS duration 
FROM messages 
WHERE condition

但是 return 错误

supplied argument is not a valid MySQL result resource in ....

本应return一个数字,但只是return错误。根据语法,$date必须先写在DATEDIFF中。我尝试使用 CAST($date),但没有用。使用前需要修改$date吗?如果我使用 DATEDIFF(date_post,date_post) returns 0,但使用 $date returns 错误

如果你想要以秒为单位的差异,最简单的方法是使用 to_seconds():

SELECT m.*,
       ( to_seconds(date_post) - to_seconds($date) )AS duration 
FROM messages m
WHERE condition;

您使用的函数是SQL服务器函数。在 MySQL、datediff() returns 中两个日期之间的天数差异。