mysql数据库的datetime类型时间相减问题

        在mysql数据库中,我们不可避免的遇到两个时间相减的问题,形如2018-07-09 12:00:00 这种格式的时间数据相减,在mysql中,你如果直接拿亮哥datetime型数据相减,MySQL不会报错,也能得到一个结果,但是我要告诉你的是,这种直接相减得到的是一个不伦不类的结果,肯定不是秒,也不是毫秒。那么我们对于这种时间相减的判断结果,我们应该如何处理呢,我们一起探究一下。

        有两种方式,第一种,TIME_TO_SEC()函数,可以帮你解决两个时间不跨天、不跨月、不跨年的计算,得到的是以秒为单位的时间,两个datetime类型时间均用次函数转换,可以得到一个正确的以秒为单位的时间差,但是记住前提条件,不跨天、不跨月份、年份。         第二种方法,UNIX_TIMESTAMP()函数,可以很好地支持跨天、跨月份、年份的时间计算,最终也可以得到一个以秒为单位的时间差。

        看完上边一段文字,有人会疑惑,既然都是转为秒,那有什么区别。  区别在于,TIME_TO_SEC()只对datetime时间中的时分秒进行转换,得到一个秒为单位的时间, UNIX_TIMESTAMP() ,计算的是自1970年以来的秒数,自然对于跨天、月份、年份的时间计算具有更好的支持,相对来说 UNIX_TIMESTAMP() 更靠谱一些。

        如果对文中的秒数有疑惑或质疑,欢迎发送邮件至13480167059@163.com,我将关注你们的每一条留言,并在方便的时候回复您的每一个疑问

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值