本文介绍了如何根据@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天和最后一天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 05:40