今天用到了关于时间的查询,来做一个总结和整理:
数据库中的时间一般有两种常见的格式,一种是普通的时间格式,即: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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




