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

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


一、查询当天的记录:

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

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

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

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

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

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

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

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

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' )

四、查询本月的数据:

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

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

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

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;

注意:这个不错,参考别人的,打个笔记,方便学习 参考地址


版权声明:本文为weixin_44167913原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。