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

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

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

遍历当月年月日

 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中会出现编译错误,改 < 即可

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

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

猜你喜欢

转载自blog.csdn.net/sinat_43097407/article/details/115294619