无法找到两个日期之间的小时数 MySQL

Unable to find hours between two dates MySQL

我的数据库中有一个 table,我的 table date1 和 date2 中有两个日期列 (varchar)。我想找出日期 1 和日期 2 之间的小时差。数据库是使用 mariadb 创建的。

我已经试过了:

timediff('date1','date2')

但是得到空值。

问题是您将列名作为字符串传递,因此它无法解析它。从列中删除引号,它将 运行 作为一个魅力。

SELECT timediff(date1, date2) from TABLE

编辑:- 使用 STR_TO_DATE() 方法将字符串转换为日期类型... 所以你的最终查询将是

SELECT timediff(STR_TO_DATE(date1, '%m-%d-%Y %H:%i:%s'),STR_TO_DATE(date2, '%m-%d-%Y %H:%i:%s')) from TABLE

您可以使用 STR_TO_DATE 将 varchar 转换为日期,因此您的查询应该是:

timediff(STR_TO_DATE(date1, '%m/%/d/%Y %h:%i:%s %p'), (STR_TO_DATE(date2, '%m/%/d/%Y %h:%i:%s %p'))
TIMESTAMPDIFF(HOUR, start_date, end_date)

示例:

mysql> SELECT NOW(), TIMESTAMPDIFF(HOUR, '2015-12-09 08:00:00', NOW());
+---------------------+---------------------------------------------------+
| NOW()               | TIMESTAMPDIFF(HOUR, '2015-12-09 08:00:00', NOW()) |
+---------------------+---------------------------------------------------+
| 2015-12-09 14:12:51 |                                                 6 |
+---------------------+---------------------------------------------------+