MYSQL 常用时间语句

查询 【今天】
SELECT * FROM table WHERE TO_DAYS(NOW()) = TO_DAYS(create_time);


查询 【昨天】
SELECT * FROM table WHERE TO_DAYS(NOW( )) - TO_DAYS(create_time) <= 1;


查询 【上一周】 YEARWEEK第二个参数可选,默认是0:即从上周天开始
SELECT * FROM table WHERE YEARWEEK(create_time) = YEARWEEK(CURDATE()) - 1;
查询 【上一周】 规定从上周一开始
SELECT * FROM table WHERE YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1) - 1;


查询 【本周】
SELECT * FROM table WHERE YEARWEEK(create_time) = YEARWEEK(CURDATE());


查询 【7天内】
SELECT * FROM table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(create_time);


查询 【近30天】
SELECT * FROM table where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(create_time);



查询 【本月】
SELECT * FROM table WHERE DATE_FORMAT(create_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')


查询 【上一月】
SELECT * FROM table
WHERE YEAR(create_time) = YEAR(CURDATE() - INTERVAL 1 MONTH)
  AND MONTH(create_time) = MONTH(CURDATE() - INTERVAL 1 MONTH);


SELECT * FROM table
WHERE create_time BETWEEN DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH, '%Y-%m-01')
  AND LAST_DAY(CURDATE() - INTERVAL 1 MONTH);

SELECT * FROM table
WHERE PERIOD_DIFF(DATE_FORMAT(CURDATE(), '%Y%m'), DATE_FORMAT(create_time, '%Y%m')) = 1



  



#查询本季度数据
SELECT * FROM table WHERE QUARTER(create_time) = QUARTER(NOW());

#查询上季度数据
SELECT * FROM table WHERE QUARTER(create_time) = QUARTER(DATE_SUB(NOW(), INTERVAL 1 QUARTER));

#查询本年数据
SELECT * FROM table WHERE YEAR(create_time) = YEAR(NOW());

#查询上年数据
SELECT * FROM table WHERE YEAR(create_time) = YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值