程序员应知应会之MySQL里怎么计算时间日期之差?
2023-03-14 11:26:23 时间
很多程序员都会用到时间差的应用,比如说计算一个用户的vip账户是否过期之类的,就需要用当前的日期减去用户注册的时间,如果大于vip账户的有效天数,比如说是30天,那么就把用户的vip置为无效。
那么这种需求如何用Mysql来实现呢?很多人会想到用当前时间减去原来的时间就行了。那么我们来试试看,比如说我们用当前日期(2022-11-30)减去用户注册日期,比如说是2022-11-1。
然后我们来看一下结果。
咦,出现了一个奇怪的大数。
那么这个数是什么呢?原来Mysql对于这种时间直接相减的做法是直接把年月日时分秒拼起来成为一个大数。
例如2022-11-30 12:15:56,会被拼成是20221130121556,然后另一个日期也是如此,所以就会得出一个奇怪的数。
那么我们想要做时间相减要什么操作呢?可以用timestampdiff函数。
它的作用是返回两个日期时间之间的整数差。函数语法分别为:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
其中unit是返回值的单位,可以用year, month, week, day, hour, minute, second和microsecond。
我们来试一下,例如我们使用:
我们看到结果是正确的结果10。
Mysql的时间日期差函数还有几个,例如time_diff等,但是最好用的就是timestampdiff,基本上只用这一个函数就够了。大家都学会了吗?
相关文章
- 数据孤岛是业务效率的无声杀手
- 2023展望:新的一年将给大数据分析领域带来什么?
- 阿里云ADB基于Hudi构建Lakehouse的实践
- 大数据在医疗保健领域的使用案例
- 微软增加说明:KB5021751 更新扫描已经 / 即将过时 Office 过程中不会触碰用户隐私
- 2022 Gartner全球云数据库管理系统魔力象限发布 腾讯云数据库入选
- 场景化、重实操,分享一个实时数仓实践案例
- Arctic的湖仓一体践行之路
- 分布式计算MapReduce究竟是怎么一回事?
- 淘系数据模型治理优秀实践
- 大数据分析对医疗保健的影响
- 当我们说大数据Hadoop,究竟在说什么?
- 2022年及以后大数据的五个发展趋势
- 网易严选离线数仓治理实践
- 2023 年数据治理趋势
- 一份“靠谱”的年度经营计划,你学会了吗?
- 漫谈对大数据的思考
- 测试一下,读懂数据的能力,你有吗?
- 用艺术的眼光探索数据之美
- 聊聊数据分析成果如何落地