1、时间转时间戳
SELECT UNIX_TIMESTAMP(时间字段)
2、时间戳转时间
SELECT FROM_UNIXTIME( 时间戳, '%Y%m%d' )
3、计算两个时间点之差
SELECT TIMESTAMPDIFF(INVTERVAL,开始时间点字段,结束时间点字段)
说明:返回的结果单位由 INVTERVAL 确定,参数可以是:
- FRAC_SECOND,毫秒
- SECOND,秒
- MINUTE,分钟
- HOUR,小时
- DAY,天
- WEEK,星期
- MONTH,月
- QUARTER,季度
- YEAR,年
4、查询今天的数据
SELECT* FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW());
5、查询昨天的数据
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段) <= 1
6、查询近7天数据
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
7、查询近30天数据
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
8、查询本月数据
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
9、查询上个月的数据
SELECT * FROM 表名 WHERE PERIOD_DIFF( DATE_FORMAT( NOW( ) , '%Y%m' ) , DATE_FORMAT( 时间字段名, '%Y%m' ) ) =1
10、查询本季度数据
SELECT * FROM 表名 WHERE QUARTER(时间字段)=QUARTER(NOW());
11、查询上季度数据
SELECT * FROM 表名 WHERE QUARTER(时间字段)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER));
12、查询本年数据
SELECT * FROM 表名 WHERE YEAR(时间字段)=YEAR(NOW());
13、查询本周的数据
SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段,'%Y-%m-%d')) = YEARWEEK(NOW());