MYSQL TIMESTAMPDIFF() 给出了错误的值

标签 mysql

我正在向 TIMESTAMPDIFF(HOUR,'29-10-2012','19-11-2012') 提供输入,但我得到的输出为 504 但值应为 510

输出为 510,因为起始值为 29/10/2012 05:13

除了这个给出两个日期之间的日、时、分、秒差值的函数之外,还有其他选择吗?

最佳答案

您在 TIMESTAMPDIFF 函数中传递了 DATE 值,一切都是正确的 -

  • 10 月的 3 天:2012-10-29、2012-10-30、2012-10-31 = 3 * 24 = 72
  • 11 月的 18 天:2012-11-01...2012-11-18 = 18 * 24 = 432

72 + 432 = 504

如果你想计算小时、分钟或秒,那么你应该传递两个DATETIME值——

SELECT TIMESTAMPDIFF(HOUR,'2012-10-29 05:13:00','2012-11-19 00:00:00') hours;
+-------+
| hours |
+-------+
|   498 |
+-------+

关于MYSQL TIMESTAMPDIFF() 给出了错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120993/

相关文章:

mysql - 为什么准备好的语句由每个 session 管理?

mysql - 如何显示数据库中的所有数据并显示另一个表中的计数数据

php - mysql/php - 根据 id 查看数据库表中的特定行

MYSQL - 插入受 ',' 限制的字符串

mysql - self 加入速度慢得令人痛苦

php - MySql 变量和 php

php - UNION 查询的问题

mysql_affected_rows 给出 "supplied argument is not a valid MySQL-Link resource"有效查询错误

mysql - 解析期间发现非法的非几何 'aswkb(...)' 值

java - 为什么在 SQL 中使用别名会返回错误?