sql 月报表每日数据汇总

发布网友 发布时间:2022-04-25 14:18

我来回答

2个回答

懂视网 时间:2022-05-03 14:43

1、背景

背景:测试报表时,经常涉及到不同时间段的数据查询,那么此时我们需借助SQL语句进入数据库查询,比对界面统计的数据是否一致。

常用的时间段查询有:当天,昨天,近7天,近30天,本月,当月...等.

2、时间查询SQL语句

【一】查询当天语句

  • 语句1:SELECT * FROM 表名 WHERE 时间字段名=‘当前日期‘;--其中时间字段名即是表中对应存在的时间字段
  • 技术图片

  • 语句2:SELECT * FROM 表名 WHERE to_days(`时间字段名`) = to_days(now());
  • 技术图片

     

     

    【二】查询昨天语句

  •  语句1:SELECT * FROM 表名 WHERE 时间字段= ‘昨天日期‘;
  • 技术图片

     

     

  • 语句2:SELECT * FROM 表名 WHERE to_days(now())-to_days(`时间字段`) = 1;
  • 技术图片

     

     

    【三】查询近7天语句

  •  语句1:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY)  <= date(时间字段) ;
  • 技术图片

     

     

    【四】查询近30天语句

  •  语句1:SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名);
  • 技术图片

     

     

    【五】查询本月语句

  •  语句1:SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, ‘%Y%m‘ ) = DATE_FORMAT( CURDATE( ) , ‘%Y%m‘ );
  • 技术图片

     

     

    【六】查询上个月语句

  • 语句1:Select * from 表名 where 时间字段名>=‘上月第一天日期‘ and 时间字段名<=‘上月最后一天日期‘;
  • 技术图片

     

  • 语句2:Select * from 表名 where 时间字段名 LIKE ‘2020-05%‘;
  • 技术图片

     

     【七】查询上周语句

  • 语句1:Select * from 表名 where YEARWEEK(date_format(`时间字段名`,‘%Y-%m-%d‘)) = YEARWEEK(now())-1;
  • 技术图片

     

     

    【八】查询截止当前本月语句

  • 语句1:Select * from 表名 where date_format(`时间字段名`, ‘%Y%m‘) = date_format(curdate() , ‘%Y%m‘);
  •  技术图片

    技术图片

     

    报表测试必备时间查询SQL汇总

    标签:ima   curd   arw   查询   val   date   sql语句   form   当前日期   

    热心网友 时间:2022-05-03 11:51

    看着没人回,我回复一下,这个问题是一个常规的交叉查询法,办法一般有两个
    一个是把日期作为自定义字段名,用CASE把结果一个一个字段写入,这个要写31个,比较麻烦。大概样式为SELECT 年 ,月,(case day(日期) when 1 then 金额 else 0 end )1号 ,……from where group by 样式
    另一个是建一个按你每二个表样式的临时表,把符合条件的值INSERT入这张临时表,然后再执行SELECT SUM() FROM GROUP BY样式

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com