使用SQL统计一个月每天数据

本文介绍了如何从mysql数据库中查询特定月份每天的数据,包括按帮助话题ID递增排序和关联业务数据的示例。还展示了查询过去30天和本年12个月数据的方法。主要涉及SQL查询技巧和日期格式处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、查某个月每天的数据

a.查询某个月每天的日期
SELECT 
    DATE_ADD(
      DATE_ADD(
        DATE_ADD(
          LAST_DAY(STR_TO_DATE('2021-09-06', "%Y-%m-%d")),
          INTERVAL 1 DAY
        ),
        INTERVAL - 1 MONTH
      ),
      INTERVAL (
        CAST(help_topic_id AS SIGNED INTEGER)
      ) DAY
    ) md 
  FROM
    mysql.help_topic 
  WHERE help_topic_id < DAY(
      LAST_DAY(STR_TO_DATE('2021-09-06', "%Y-%m-%d"))
    ) 
  ORDER BY help_topic_id

在这里插入图片描述

b.关联业务数据查询
SELECT 
  DATE_FORMAT(tmd.md, "%Y-%m-%d") `date`,b.id ,c.id
FROM
  (SELECT 
    DATE_ADD(
      DATE_ADD(
        DATE_ADD(
          LAST_DAY(STR_TO_DATE('2021-09-06', "%Y-%m-%d")),
          INTERVAL 1 DAY
        ),
        INTERVAL - 1 MONTH
      ),
      INTERVAL (
        CAST(help_topic_id AS SIGNED INTEGER)
      ) DAY
    ) md 
  FROM
    mysql.help_topic 
  WHERE help_topic_id < DAY(
      LAST_DAY(STR_TO_DATE('2021-09-06', "%Y-%m-%d"))
    ) 
  ORDER BY help_topic_id) tmd 
  LEFT JOIN b  
    ON DATE_FORMAT(tmd.md, "%Y-%m-%d") = DATE_FORMAT(b.startTime, "%Y-%m-%d") 
  LEFT JOIN c  
    ON c.id=b.id
WHERE (c.id = 1  OR c.id IS NULL) 
GROUP BY DATE_FORMAT(tmd.md, "%Y-%m-%d") 
  ORDER BY `date` 

2、查询过去三十天的数据

  SELECT DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -help_topic_id DAY),'%m-%d')  AS ttt,help_topic_id
    FROM mysql.help_topic
    WHERE help_topic_id <  30

3、查询本年12个月的数据


SELECT
	DATE_FORMAT(
		DATE_SUB(
			CONCAT(YEAR(CURDATE()), '-12-31'),
			INTERVAL (
				CAST(help_topic_id AS SIGNED) - 0
			) MONTH
		),
		'%Y-%m'
	) MONTH
FROM
	mysql.help_topic
WHERE
	
	help_topic_id < 12
ORDER BY
	help_topic_id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值