时间戳相减的几种方法

简介: 这两天正在写一个日报的code,其中有一处是涉及系统用时,简单来看,就是俩时间戳字段相减,方法可能有很多,这里列出一些,朋友们要是有更简单、更好玩的方法,可以回复,一起玩耍。

这两天正在写一个日报的code,其中有一处是涉及系统用时,简单来看,就是俩时间戳字段相减,方法可能有很多,这里列出一些,朋友们要是有更简单、更好玩的方法,可以回复,一起玩耍。


创建测试表,t1和t2是TIMESTAMP类型,t1比t2快1分钟,



直接使用t1-t2得到正值,t2-t1得到负值,



使用substr截取字段前18位,得到的是“yyyy-mm-dd hh24:mi:ss“格式的日期,两个日期字段相减则可以得到粒度为秒的结果值,乘以1440(24*60)*60,换算为秒,乘以1000,换算为毫秒,相减值为60000毫秒,



使用substr截取20位开始的6位,得到TIMESTAMP的6位,相减(001811-000000),



另一种方法,可以使用extract函数,得到DAY、HOUR、MINUTE、SECOND各个部分,


按照DAY、HOUR、MINUTE、SECOND各自换算为毫秒,相加得到总的毫秒,相减得到用时,单位是毫秒,这有两种用法,一种是首先换算t1和t2的值为毫秒,再相减这两个值,另一种是直接从t1-t2执行extract函数,换算为毫秒,等价的两种方法,


这种用法的优点在于,相比上面to_date相减,会有毫秒的精度,因为to_date截取了秒这一级别,毫秒被忽略了,因此使用extract函数,可以得到更精确的用时。


总结:

1. 两个时间戳类型的字段,可以相减得到两者用时。若用to_date则会按照格式符,有一定的截断,精度会被忽略。若用extract提取,SECOND包含毫秒,因此毫秒的精度会被保存,得到的结果会更精确些。extract可以接受两个字段相减,作为参数。

2. 实践,才可能准确、理性地知道一些用法细节。


对于上面的需求,如果有朋友有其他更好的办法,欢迎回复,一起学习!



如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:bisal的个人杂货铺,您的支持是对我最大的鼓励!共同学习,共同进步:)

目录
相关文章
将时间格式转化成时间戳和时间戳转化成时间格式的公式
将时间格式转化成时间戳和时间戳转化成时间格式的公式
|
8月前
时间戳转换时间
时间戳转换时间
|
15天前
将毫秒数量转换为时分秒字符串(毫秒数→转换为→00:00:00.000或00天00时00分00秒000毫秒形式)
将毫秒数量转换为时分秒字符串(毫秒数→转换为→00:00:00.000或00天00时00分00秒000毫秒形式)
|
3月前
|
Linux C++ iOS开发
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
44 0
|
4月前
|
JavaScript Unix Java
到了2038年时间戳溢出了怎么办?
我经常自嘲,自己写的程序运行不超过3年,因为大部分项目方就早早跑路了。大多数项目上线后,你跟这个项目就再无瓜葛,关于时间你只需要保证时区正确就不会有太大问题,哈哈。 但是今天我想认真对待时间这个问题,作为一个库作者或基础软件作者,就需要考虑下游项目万一因为你处理时间不当而造成困扰,影响范围就比较广了。
到了2038年时间戳溢出了怎么办?
|
5月前
|
JSON 小程序 JavaScript
小程序返回的时间戳转化成时间
小程序返回的时间戳转化成时间
24 0
|
6月前
时间戳转化成日期
时间戳转化成日期
25 0
|
8月前
获取时间戳方法
获取时间戳方法
|
8月前
|
前端开发
时间秒转换为毫秒
时间秒转换为毫秒
49 0
|
JavaScript Kotlin
时间戳转化为时分秒格式
时间戳转化为时分秒格式
338 0

热门文章

最新文章