MySQL 中的时间戳和日期时间转换函数

在平时开发中,经常会遇到一些时间范围的查询,比如查询近 7 天内注册的新用户,如果表中存储的是 timestamp 类型,那么开发时,查询数据可能看到的是一个整形的时间戳,不便于阅读,怎么能让查询的结果集中的时间显示正常可读的时间格式呢?

答案就是使用 MySQL 中的函数。准确地说,是 format 系列的函数。

总结了下,日期时间格式化相关函数大概有一下几种:

函数名简介说明
DATE_FORMAT格式化日期-
TIME_FORMAT按指定格式格式化时间-
FORMAT将数字格式化为“#,###,###。##”等格式,舍入到指定的小数位数-
UNIX_TIMESTAMP将日期时间转换为时间戳-
FROM_UNIXTIME将时间戳转换为日期时间格式-

时间转为时间戳

例如,当我们要查询 2021-11-01 ~ 2021-11-02 之间的数据时,可以这样:

SELECT FROM_UNIXTIME(t1.create_time,'%Y-%m-%d %T'),t1.* FROM `user` t1 WHERE is_delete=2 
and create_time>=UNIX_TIMESTAMP('2021-11-01 00:00:00') and create_time<=UNIX_TIMESTAMP('2021-11-02 23:59:59')
LIMIT 0,20

查询时,就不用再去找额外的工具将一个特定的日期时间转为时间戳。

时间戳转时间格式

如果想把一个时间戳转换为日期格式显示,可以使用 FROM_UNIXTIME:

SELECT FROM_UNIXTIME(1602668106,'%Y-%m-%d %T');
// 2020-10-14 09:35:06

参考

  • https://blog.csdn.net/weixin_44716992/article/details/109294581
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值