如何使用MYSQL TIMESTAMP字段进行时间加减运算
来源:互联网 发布:淘宝代理退货怎么办 编辑:程序博客网 时间:2024/05/21 12:50
在数据分析过程中,想当然地对TIMESTAMP字段进行运算,导致结果谬之千里,计算公式如下:
-- create_time与week_time的声明都是TIMESTAMP(), 要求精确到分钟 --SELECT (sa.create_time - sa.week_time)/(1000 * 60)from alarm_sla_1 sa
当然正确的解法是利用timestampdiff函数,如下:
SELECT timestampdiff(minute, sa.create_time, sa.week_time)from alarm_sla_1 sa
但有意思的问题在于,MYSQL明明支持减法操作,为何操作的结果又大相径庭?类似的问题还有,TIMESTAMP字段的时间精度是什么?
从MYSQL的官方实例中可以看到(请见后续的参考文档),TIMESTAMP字段的小数部分确定了秒的经度,3位小数精确到毫秒,6位小数精确到微秒,如下:
按照上面的推论,那么默认的声明TIMESTAMP应该精确到秒,那么应该相减的结果应该得到秒,测试语句如下:
SELECT sa.week_time - sa.create_time, timestampdiff(second, sa.create_time, sa.week_time)from alarm_sla_1 sa
但最后的结果见下表:
显然,并不存在相关性,差异何止里计?
后来继续进行了指定经度的操作运算,结论依旧如此。
DATETIME 与 TIMESTAMP的区别
结论
MYSQL中TIMESTAMP字段直接进行相减操作,可能得到难以理解的结果,请慎用。
参考文档
- 日期与时间函数
- 秒的精度说明
阅读全文
0 0
- 如何使用MYSQL TIMESTAMP字段进行时间加减运算
- 如何进行时间的加减运算
- 如何对时间进行简单加减运算
- mysql timestamp 字段使用
- ORACLE时间类型字段加减简便运算
- 【MYSQL】时间、日期加减运算语句
- java中日期如何进行加减运算???
- 如何对时间函数进行加减
- 如何设定MySQL中timestamp类型字段自动设定为当前时间
- MySql中的Timestamp类型字段的使用
- mysql中timestamp字段,在更新这个字段其他数据时候,不更新timestamp的时间
- 如何使用RC4进行数据加减密
- Hibernate使MySql TimeStamp字段自动生成CURRENT_TIMESTAMP日期时间
- 经典的例子:mySQL 时间、日期加减运算语句
- mysql日期函数时间函数及加减运算
- mysql日期函数时间函数及加减运算
- js 时间运算,时间加减
- mysql timestamp 字段
- SocketChannel
- Azkaban安装部署
- dao
- 外部类——MyAdapter
- 关于C++ 基本常见问题 无法打开包括文件:“iostream.h”: No such file or directory” [Error] '::main' must return 'int
- 如何使用MYSQL TIMESTAMP字段进行时间加减运算
- Android-框架-The Clean Architecture
- 图像处理中的一阶导数与二阶导数
- PHP实现国密算法SM4
- SpringMVC处理XML和JSON遇到的问题及解决
- 多线程下载断点续传
- 辐射定标、辐射校正、大气校正、正射校正概念
- 四种方法实现两边固定,中间自适应布局(基本是浮动 定位)
- 在Android平台部署Opencv