mysql中这个php函数的等价物是什么:
$cba=date_diff($cb,$ca);
$cba->format('%R%a.%h');
输出:日期:1.12 //即1天12小时
我将在哪里使用它:
DATEDIFF(q2.adate, q1.deact) AS ND,
我可以单独在mysql中执行相同的过程,谢谢
答案 0 :(得分:3)
使用TIMEDIFF
尝试此操作SELECT CONCAT(
FLOOR(HOUR(TIMEDIFF(q2.adate, q1.deact)) / 24), ' days, ',
MOD(HOUR(TIMEDIFF(q2.adate, q1.deact)), 24), ' hours, '
)
AS ND
MySQL TIMEDIFF()返回两个时间或日期时间之间的差异 表达式。需要注意的是,两个表达式必须相同 类型。
答案 1 :(得分:1)
来自MySQL文档:
DATEDIFF()将expr1 - expr2 表示为从一个日期到另一个日期的天数值。 expr1和expr2是日期或日期和时间表达式。 在计算中仅使用值的日期部分。
您可以改为使用TIMEDIFF
:
TIMEDIFF()返回expr1 - expr2 表示为时间值。 expr1和expr2是时间或日期和时间表达式,但必须属于同一类型。 强>
因此TIMEDIFF
的结果如下:
-00:00:00.000000 // Negative times 00:00:00.000000 // Positive times
或TIMESTAMPDIFF
:
TIMESTAMPDIFF()返回datetime_expr2 - datetime_expr1,其中datetime_expr1和datetime_expr2 是日期或日期时间表达式。一个表达式可以是日期,另一个表达式可以是日期时间;日期值被视为具有时间部分&00; 00:00:00'的日期时间。在必要时。 结果(整数)的单位由unit参数给出。单位的合法值与TIMESTAMPADD()函数说明中列出的值相同。
所以:
SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
将返回128885
(分钟)。