无法找到两个日期之间的小时数 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 |
+---------------------+---------------------------------------------------+
我的数据库中有一个 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 |
+---------------------+---------------------------------------------------+