报表sql语句汇总

背景:报表统计中,经常会涉及到各段时间的报表汇总,当天,昨天,近一周,一月,一季度,一年等 ,这里便整理了一些sql ,方便以后copy!

# 查询当天(1)
select * from invoice where cr_date  like '2021-05-25%'
# 查询当天(2)
SELECT * FROM invoice WHERE TO_DAYS(cr_date) = to_days(now());
#查询当天所有金额总计
SELECT SUM(money) as '当天发票总额' from invoice WHERE TO_DAYS(cr_date) = to_days(now());


#查看昨天 
SELECT * FROM invoice WHERE to_days(now())-to_days(`cr_date`) = 1;

#查看近七天
SELECT * FROM invoice where DATE_SUB(CURDATE(), INTERVAL 7 DAY)  <= date(cr_date) ;

#查看近30天
SELECT * FROM invoice where DATE_SUB(CURDATE(), INTERVAL 30 DAY)  <= date(cr_date) ;

#查看本月  # DATE_FORMAT( CURDATE() , '%Y%m' ) 年份月份去点-  如:202105
SELECT * FROM invoice WHERE DATE_FORMAT( cr_date, '%Y%m' ) = DATE_FORMAT( CURDATE() , '%Y%m' );
Select * from invoice where cr_date LIKE '2021-05%';


#查看本月(2)
select * from invoice where month(cr_date) =
month(curdate()) and year(cr_date) = year(curdate())

#查询上周 **周日为第一天,周六为第七天
Select * from invoice where YEARWEEK(date_format(`cr_date`,'%Y-%m-%d')) = YEARWEEK(now())-1 order by cr_date;
Select  * from invoice where DATE_FORMAT(cr_date,'%U') = DATE_FORMAT(now(),'%U')-1 order by cr_date;
# 查询上周 周一为第一天
Select  * from invoice where DATE_FORMAT(cr_date,'%u') = DATE_FORMAT(now(),'%u')-1 order by cr_date;
#查询一年中每一周
select DATE_FORMAT(cr_date,'%x年-第%v周') as week,sum(money) as money from invoice where DATE_FORMAT(cr_date,'%Y')=2021 group by 
week 

#查询上月  # date_format(DATE_SUB( CURDATE(), INTERVAL 1 MONTH ),'%Y %m'):2021 04
        #DATE_SUB(date,INTERVAL expr unit) 从日期减去指定的时间间隔

SELECT * FROM invoice  WHERE date_format( cr_date, '%Y %m' ) = date_format(DATE_SUB( CURDATE(), INTERVAL 1 MONTH ),'%Y %m')


#查询季度
#YEAR(cr_date)*10+((MONTH(cr_date)-1) DIV 3) +1 计算出来的是哪一年的第几季度,如20211
select  YEAR(cr_date)*10+((MONTH(cr_date)-1) DIV 3) +1,sum(money) as summoney
from invoice group by YEAR(cr_date)*10+((MONTH(cr_date)-1) DIV 3) +1;

#查询指定时间段
Select sum(money) from invoice where cr_date >='2021-04-01' and cr_date <='2021-06-30'

#查询年度
select * from invoice where YEAR(cr_date) =
YEAR(curdate()) 


Date_format格式说明:
格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微妙
%H 小时(00-23)
%h 小时(01-12)
%I 小时(01-12)
%i 分钟,数值(00-59)
%j 年的天(001-366)
%k 小时(0-23)
%l 小时(1-12)
%M 月名
%m 月,数值(00-12)
%p AM或PM
%r 时间,12-小时(hh:mm:ss AM或PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时(hh:mm:ss)
%U 周(00-53)星期日是一周的第一天
%u 周(00-53)星期一是一周的第一天
%V 周(01-53)星期日是一周的第一天,与%X使用
%v 周(01-53)星期一是一周的第一天,与%x使用
%W 星期名
%w 周的天(0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4位,与%V使用
%x 年,其中的星期一是周的第一天,4位,与%v使用
%Y 年,4位
%y 年,2位

更多推荐

报表sql语句汇总