mysql查询并遍历当月年月日、mysql查询指定时间段年月日

mysql 查询并遍历当月年月日、mysql查询指定时间段年月日

遍历日期:以日期为主表,左连接其他表,可以做匹配统计数据。如(某天数据有多少条等。。。)

遍历当月年月日

注:mybatis中 '<' 小于号会报错,用 '&lt;'替换即可。
 SELECT
  DATE_FORMAT(
  DATE_ADD(
  DATE_ADD(CURDATE(), INTERVAL - DAY(CURDATE()) + 1 DAY),
  INTERVAL ROW DAY
  ),
  '%Y-%m-%d'
  ) DAY
  FROM
  (
  SELECT
  @ROW := @ROW + 1 AS ROW
  FROM
  (
  SELECT
  0
  UNION ALL
  SELECT
  1
  UNION ALL
  SELECT
  2
  UNION ALL
  SELECT
  3
  UNION ALL
  SELECT
  4
  UNION ALL
  SELECT
  5
  UNION ALL
  SELECT
  6
  UNION ALL
  SELECT
  7
  UNION ALL
  SELECT
  8
  UNION ALL
  SELECT
  9
  ) t,
  (
  SELECT
  0
  UNION ALL
  SELECT
  1
  UNION ALL
  SELECT
  2
  UNION ALL
  SELECT
  3
  UNION ALL
  SELECT
  4
  UNION ALL
  SELECT
  5
  UNION ALL
  SELECT
  6
  UNION ALL
  SELECT
  7
  UNION ALL
  SELECT
  8
  UNION ALL
  SELECT
  9
  ) t2,
  (SELECT @ROW :=- 1) r
  ) se
  WHERE
  DATE_FORMAT(
  DATE_ADD(
  DATE_ADD(CURDATE(), INTERVAL - DAY(CURDATE()) + 1 DAY),
  INTERVAL ROW DAY
  ),
  '%Y-%m-%d'
  ) <= DATE_FORMAT( LAST_DAY(CURDATE()), '%Y-%m-%d')

当月年月日查询

遍历指定时间段年月日

根据自己需求,在date_format中,选择格式化内容。以下时间为固定时间,放入MyBatis时,将时间替换掉即可。注:’<’ 小于号 在MyBatis中会出现编译错误,改 & lt; 即可

SELECT
        DATE_FORMAT(
        DATE_ADD(
        '2021-03-04',
        INTERVAL ROW DAY
        ),
        '%m-%d'
        ) DAY
        FROM
        (
        SELECT
        @ROW := @ROW + 1 AS ROW
        FROM
        (
        SELECT
        0
        UNION ALL
        SELECT
        1
        UNION ALL
        SELECT
        2
        UNION ALL
        SELECT
        3
        UNION ALL
        SELECT
        4
        UNION ALL
        SELECT
        5
        UNION ALL
        SELECT
        6
        UNION ALL
        SELECT
        7
        UNION ALL
        SELECT
        8
        UNION ALL
        SELECT
        9
        ) t,
        (
        SELECT
        0
        UNION ALL
        SELECT
        1
        UNION ALL
        SELECT
        2
        UNION ALL
        SELECT
        3
        UNION ALL
        SELECT
        4
        UNION ALL
        SELECT
        5
        UNION ALL
        SELECT
        6
        UNION ALL
        SELECT
        7
        UNION ALL
        SELECT
        8
        UNION ALL
        SELECT
        9
        ) t2,
        (SELECT @ROW :=- 1) r
        ) se
        WHERE
        DATE_FORMAT(
        DATE_ADD(
        '2021-03-04',
        INTERVAL ROW DAY
        ),
        '%m-%d'
        ) <= DATE_FORMAT('2021-04-03', '%m-%d')

结果如下
时间段年月日查询结果

查看最近多少天的日期 格式:yyyy-mm-dd

 SELECT 
 DATE( DATE_SUB( DATE_SUB(CURDATE(),INTERVAL -1 DAY), INTERVAL @s :=@s + 1 DAY ) ) AS DAY 
 FROM mysql.help_topic, (SELECT @s := 0) temps WHERE @s <7  ORDER BY DAY DESC

上述SQL查询7天数据,如需查询其他天数,将7替换即可。
结果如下:
在这里插入图片描述

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值