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

时间:2015-12-06 06:25:12

标签: mysql mariadb

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

我已经尝试过:

current

但是变为空。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您可以使用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'))

答案 2 :(得分:1)

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 |
+---------------------+---------------------------------------------------+