mysql 计算两个日期的时间差函数小时分钟格式

mysql 计算两个日期的时间差函数小时分钟格式,第1张

N列可以用这个公式=((HOUR(M2)-HOUR(L2))*60+(MINUTE(M2)-MINUTE(L2)))例如 我下面的表格 我的列是M 和L列时间差  精算分钟  如果你复制过去 那就修改对应公式里的对应的列

TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。

其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:

FRAC_SECOND 表示间隔是毫秒

SECOND  秒

MINUTE  分钟

HOUR  小时

DAY  天

WEEK  星期

MONTH  月

QUARTER  季度

YEAR  年

SELECT '年'  AS  `日期部分`,  TIMESTAMPDIFF(YEAR, '2012-12-21',  CURRENT_TIMESTAMP()) AS `数值`

UNION ALL

SELECT '季度'  AS  `日期部分`,  TIMESTAMPDIFF(QUARTER, '2012-12-21', CURRENT_TIMESTAMP()) AS `数值`

UNION ALL

SELECT '月'  AS  `日期部分`,  TIMESTAMPDIFF(MONTH, '2012-12-21', CURRENT_TIMESTAMP()) AS `数值`

UNION ALL

SELECT '日'  AS  `日期部分`,  TIMESTAMPDIFF(DAY, '2012-12-21', CURRENT_TIMESTAMP()) AS `数值`

UNION ALL

SELECT '周'  AS  `日期部分`,   TIMESTAMPDIFF(WEEK, '2012-12-21', CURRENT_TIMESTAMP()) AS `数值`

UNION ALL

SELECT '时'  AS  `日期部分`,   TIMESTAMPDIFF(HOUR, '2012-12-21', CURRENT_TIMESTAMP()) AS `数值`

UNION ALL

SELECT '分'  AS  `日期部分`,   TIMESTAMPDIFF(MINUTE, '2012-12-21', CURRENT_TIMESTAMP()) AS `数值`

UNION ALL

SELECT '秒'  AS  `日期部分`,   TIMESTAMPDIFF(SECOND, '2012-12-21', CURRENT_TIMESTAMP()) AS `数值`

+----------+----------+

| 日期部分 | 数值     |

+----------+----------+

| 年       |        1 |

| 季度     |        4 |

| 月       |       12 |

| 日       |      388 |

| 周       |       55 |

| 时       |     9328 |

| 分       |   559737 |

| 秒       | 33584279 |

+----------+----------+

8 rows in set (0.00 sec)

mysql> select CURRENT_TIMESTAMP()

+---------------------+

| CURRENT_TIMESTAMP() |

+---------------------+

| 2014-01-13 16:58:17 |

+---------------------+

1 row in set (0.00 sec)

在mysql中,这种计算可用TIMESTAMPDIFF函数来解决,但是解决过程中需要将数据多次加工。

1、创建测试表及插入测试数据:

create table test

(time1 datetime,

time2 datetime)

insert into test values ('2015-04-03 17:01:09','2015-06-03 22:09:30')

2、目前要结算time2和time1的时间差,用如下语句:

select round(TIMESTAMPDIFF(second,time1,time2)/3600,2) from test

结果如图:

解读:

首先,先用

select TIMESTAMPDIFF(second,time1,time2) from test

来计算两个时间之间的秒数差。

然后,得到的结果除以3600,即为这两个时间之间的小时数。

最后因为要求保留2位小数,则通过round函数,四舍五入,取出2位小数即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8682511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存