这必须返回1440分钟并且工作正常:
select abs(round((TIME_TO_SEC(TIMEDIFF('2013-03-13 10:00',
'2013-03-14 10:00'))/60),2)) ;
(2)相同的功能日期更改为2 年天返回 50339.98
select abs(round((TIME_TO_SEC(TIMEDIFF('2013-03-12 10:00',
'2013-03-14 10:00'))/60),2)) ;
(3)相同的功能,日期变为4 年天,答案是 50339.98
select abs(round((TIME_TO_SEC(TIMEDIFF('2013-03-10 10:00',
'2013-03-14 10:00'))/60),2)) ;
这是一个错误吗?
答案 0 :(得分:1)
这必须返回1440分钟并且工作正常:
没有。可能会有夏令时变化或闰秒变化。你不能仅仅因为你认为它们应该是两次偏移一定数量。
有些东西很奇怪。
select
TIMEDIFF('2000-09-14 09:00', '2000-08-10 10:00'),
TIMESTAMPDIFF(SECOND, '2000-09-14 09:00', '2000-08-10 10:00');
给出
838:59:59,-3020400
这是不可能的。解释是MySQL have a limit中的TIME值取决于可接受的值。
MySQL以'HH:MM:SS'格式检索并显示TIME值(或 'HHH:MM:SS'格式表示大小时值)。 TIME值的范围可以从 '-838:59:59'到'838:59:59'。
显然你应该使用其中一个函数TIMESTAMPDIFF()和UNIX_TIMESTAMP(),它们都返回整数,或者如果你有实际日期则使用DATEDIFF()。