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位小数即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)