返回首页

在SQL中,我怎么能找到上年日期
我上年星期,一个月,一周,一年,我已经计算从
这些数字从目前最新的,问题是如何找到类似的同一天,年份和月份比上年
例如

2011-01-01-GT,2012年1月1日

建议我如何才达到上年日期

回答

评论会员:游客 时间:2012/02/06
巴拉Selvanayagam:我刚刚创建了一个功能,你需要什么codeprealterFUNCTIONfnBala( @Yearvarchar(spanclass="code-digit"20/span), @Monthvarchar(spanclass="code-digit"20/span), @Day2Findvarchar(spanclass="code-digit"20/span), @nthspanclass="code-keyword"int/span)RETURNSdateASBEGIN --selectdbo.fnBala(spanclass="code-string"'/spanspanclass="code-string"2012'/span,spanclass="code-string"'/spanspanclass="code-string"JAN'/span,spanclass="code-string"'/spanspanclass="code-string"MON'/span,spanclass="code-digit"1/span) Declare@StartDatedate=convert(date,spanclass="code-string"'/spanspanclass="code-string"1/'/span+@Month+spanclass="code-string"'/spanspanclass="code-string"/'/span+@Year) Declare@FirstDateOfMonthdate Declare@Factorint=-spanclass="code-digit"1/span  spanclass="code-keyword"if/span@Day2Find=spanclass="code-string"'/spanspanclass="code-string"SUN'/span set@Factor=6 spanclass="code-keyword"else/spanspanclass="code-keyword"if/span@Day2Find=spanclass="code-string"'/spanspanclass="code-string"SAT'/span set@Factor=5 spanclass="code-keyword"else/spanspanclass="code-keyword"if/span@Day2Find=spanclass="code-string"'/spanspanclass="code-string"MON'/span set@Factor=0 spanclass="code-keyword"else/spanspanclass="code-keyword"if/span@Day2Find=spanclass="code-string"'/spanspanclass="code-string"TUE'/span set@Factor=1 spanclass="code-keyword"else/spanspanclass="code-keyword"if/span@Day2Find=spanclass="code-string"'/spanspanclass="code-string"WED'/span set@Factor=2 spanclass="code-keyword"else/spanspanclass="code-keyword"if/span@Day2Find=spanclass="code-string"'/spanspanclass="code-string"THU'/span set@Factor=3 spanclass="code-keyword"else/spanspanclass="code-keyword"if/span@Day2Find=spanclass="code-string"'/spanspanclass="code-string"FRI'/span set@Factor=4 spanclass="code-keyword"if/span(@Factor-DATEDIFF(DD,spanclass="code-digit"0/span,@StartDate)%7)<spanclass="code-digit"0/span set@FirstDateOfMonth=dateadd(spanclass="code-string""/spanspanclass="code-string"d"/span,(@Factor-DATEDIFF(DD,spanclass="code-digit"0/span,@StartDate)%7)+7,@StartDate) spanclass="code-keyword"else/span set@FirstDateOfMonth=dateadd(spanclass="code-string""/spanspanclass="code-string"d"/span,(@Factor-DATEDIFF(DD,spanclass="code-digit"0/span,@StartDate)%7),@StartDate) spanclass="code-keyword"return/spandateadd(spanclass="code-string""/spanspanclass="code-string"d"/span,spanclass="code-digit"7/span*(@nth-spanclass="code-digit"1/span),@FirstDateOfMonth) END/pre/code拳头时,当您创建函数{C}需要{C2的}repalced1,如果你想找到feb2010每月第一个星期日是什么日期?{体C3}2。如果你想找到2011/02/26第三个星期日是什么日期?{的C4}我只是在SQLServer2008测试,它为我工作,而不是suree什么是你的SQLServer版本,请让我知道,如果你的SQLServer版本任何错误消息希望这有助于
OriginalGriff:使用{,A0}]函数 - 它用正面或负面的价值工程
评论会员:|阿米尔Mahfoozi 时间:2012/02/06
我理解你的问题,例如你想知道什么是日期在2010年2月第一个星期日。
因此,这里是一个解决方案:

{C5的}
它需要一些自定义以满足您的需求,但我敢肯定,你可以处理。

请标记为答案,如果它解决您的问题或投票{S0的}
评论会员:游客 时间:2012/02/06
DeepikaSrivastava:下面的脚本使用1年回来的确切日​​期,GETDATE(){5233}
P.Salini:参照此链接
{A}

给你一些想法