Mysql查询当天,本周,本月所有数据记录



转载-CSDN博主:懂的越多不懂的也越多

一、查询当天的记录:

1
select * from create_time where TO_DAYS(create_time) = TO_DAYS(NOW())

注意:这里的create_time是数据库中的时间字段,会根据这个时间去和今天的时间对比获取数据.

注意:这里的create_time是数据库中的时间字段,会根据这个时间去和今天的时间对比获取数据.

二、查询昨天(固定几天前)的记录:

1
select count(1) from kunyao_shop_order  where is_payed = 1 and TO_DAYS(NOW()) - TO_DAYS(create_time) = 1

注意:这里的时间实际上和查询当天的记录一样,但是用了算术差的概念,同样的要获取前天的时间就将结果的1改成2即可

三、查询当前这周的数据:

1
SELECT * FROM wx_fund_record  WHERE YEARWEEK(date_format(create_time,'%Y-%m-%d')) = YEARWEEK(now());

注意:这里的create_time是数据库中的时间字段,会根据这个时间去和今天的时间对比获取数据,除此之外,这个SQL语句获取的是美国的一周数据,中国和美国的周期不一样,美国的周日是中国的周一,所以如果要按照中国的周获取结果,需要推迟一天,SQL在下面:

1
2
3
SELECT * FROM wx_fund_record  WHERE store_id=1 AND YEARWEEK(date_format(create_time,'%Y-%m-%d'), 1) = YEARWEEK(now(), 1);

SELECT SUM(money) FROM wx_fund_record WHERE store_id=?1 AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )

四、查询本月的数据:

1
SELECT * FROM wx_fund_record  WHERE store_id=1 AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )

注意:这里的create_time是数据库中的时间字段,会根据这个时间去和今天的时间对比获取数据.

五、查询当前日期之前一周内每天的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT a.click_date,IFNULL(b.count,0) AS COUNT
FROM (
SELECT CURDATE() AS click_date
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS click_date
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS click_date
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS click_date
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS click_date
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS click_date
UNION ALL
SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS click_date
) a LEFT JOIN (
SELECT DATE(create_time) AS totalMoney, SUM(money+wallet) AS COUNT
FROM kunyao_shop_member_fund_record WHERE TYPE = 2
GROUP BY DATE(create_time)
) b ON a.click_date = b.totalMoney;
打赏
  • 版权声明: 本网站所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  1. © 2020-2021 Lauy    湘ICP备20003709号-1

请我喝杯咖啡吧~

支付宝
微信