我的数据库中有一个表,我的表date1和date2中有两个日期列(varchar)。我想找出date1和date2之间的小时差异。数据库是使用mariadb创建的。
我已经尝试过:
current
但是变为空。
答案 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 |
+---------------------+---------------------------------------------------+