sql 语句系列(计算一个季度的开始日期和结束日期)[八百章之第二十三章]

前言

很多时候,我们进行数据库查询的时候,查询一个季度的财务报表的时候。
比如说查询2020年第一季度的单子,可能传入后台的就是20201,表示的就是20201第一季度,这时候我们要转换为日期。

select * from quarters

mysql

SELECT DATE_ADD(ADDDATE(q_end,-DAY(q_end)+1),INTERVAL -2 MONTH) q_start,q_end
from(
select LAST_DAY(STR_TO_DATE(CONCAT(SUBSTR(args,1,4),MOD(args,10)*3),'%Y%m')) q_end
from quarters
) x

sql server

select DATEADD(m,-2,q_end) q_start,
       DATEADD(d,-1,DATEADD(m,1,q_end))q_ebd
from(
select cast(SUBSTRING(cast(args as varchar),1,4)+'-'+CAST(args%10*3 as varchar)+'-1' as datetime) q_end
from quarters
) x

效果:

posted @ 2020-04-11 21:46  敖毛毛  阅读(722)  评论(0编辑  收藏  举报