今天用到了关于时间的查询,来做一个总结和整理:
数据库中的时间一般有两种常见的格式,一种是普通的时间格式,即:yyyy-mm-ss: hh:mm:ss。一种是时间戳的格式。时间戳中又分为秒和毫秒两种格式。
时间戳简介
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.
2. 数据库中时间的查询
1)普通时间
1、查询当前时间1天前的时间点
select date_sub(now() ,interval 1 day)
2.查询当前时间的时间1天之后的时间点
select data_sub(now(),interval -1 day)
3.查询当前时间1个月之前的时间点
select data_sub(now(),interval 1 month)
4.查询当前时间1个月之后的时间点
select data_sub(now,interval -1 month)
复制
2)时间戳转换
1. 时间转换为时间戳
SELECT UNIX_TIMESTAMP('2015-04-15 10:03:19')
2. 时间戳转换为时间
SELECT FROM_UNIXTIME(1429063399,'%Y-%m-%d %H:%i:%s')
3. 毫秒级时间戳转换为时间
SELECT FROM_UNIXTIME(ctime/1000,'%Y-%m-%d %H:%i:%s')
复制
3) 应用示例
1. 查询大于多少时间戳的数据
SELECT * FROM table WHERE `timestamp`>(SELECT unix_timestamp(date_sub(now() ,interval 30 day))*1000);
2. 查询大于多少时间的数据
SELECT * FROM table WHERE (SELECT FROM_UNIXTIME(timestamp/1000,'%Y-%m-%d %H:%i:%s') )<=date(now());
复制
文章转载自测试备忘录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2529次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
782次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
439次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
407次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
367次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
356次阅读
2025-04-07 12:14:29
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
262次阅读
2025-04-15 15:27:53
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
217次阅读
2025-04-30 17:37:37
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
210次阅读
2025-04-18 20:21:32
GreatSQL 新版发布:MySQL 牵手“鸭子”
严少安
147次阅读
2025-04-19 14:57:56