本文介绍了如何根据@MONTH_NAME参数和@QUARTER参数获取第1天和最后一天的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Hi Team,
我有2个参数@MonthName和@Quarter。基于@Month给出。我应该得到这个月的第一天和最后一天。
根据给出的@quarter,我应该得到本季度的第一天和最后一天。
例如 - 考虑以下情况。(年份为当年)
声明@ Monthname ='二月'
我应该得到= 2/1 / 2019-2 / 28/2019
声明@ Monthname ='四月'
我应该得到= 4/1/2011- 2/30/2019
声明@ Quarter ='Q1'
我应该得到 - 1/1 / 2019-3 / 31/2019
声明@ Quarter ='Q4'
我应该得到 - 10/1 / 2019-12 / 31/2019
谢谢
sania
推荐答案
请尝试按照以下脚本查看它是否满足您的要求。
Please try following script to see if it satisfies your requirement.
Declare @Monthname varchar(20)='April'
declare @Quarter varchar(20)='Q4'
;with cte as (
select cast(case when @Monthname='January' then '1'
when @Monthname='February' then '2'
when @Monthname='March' then '3'
when @Monthname='April' then '4'
when @Monthname='May' then '5'
when @Monthname='June' then '6'
when @Monthname='July' then '7'
when @Monthname='August' then '8'
when @Monthname='September'then '9'
when @Monthname='October' then '10'
when @Monthname='November' then '11'
when @Monthname='December' then '12' end
+'/1/'+
cast(year(getdate()) as varchar(4))as date) as [result]
)
select CONVERT(varchar(20),result,101)
+' - '+CONVERT(varchar(20),dateadd(day,-1,dateadd(month,1,result)),101) as result from cte
;with cte as (
select cast(cast((right(@Quarter,1)-1)*3+1 as varchar(10))
+'/1/'
+cast(year(getdate()) as varchar(4))as date) as result
)
select CONVERT(varchar(20),result,101)
+' - '+CONVERT(varchar(20),dateadd(day,-1,dateadd(month,3,result)),101) as result from cte
$
希望它可以帮到你。
最好的问候,
Rachel
这篇关于如何根据@MONTH_NAME参数和@QUARTER参数获取第1天和最后一天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!