如何在T-sql中获取本月最后一个星期五的日期?
我将把年份和月份作为参数传递,例如201211.
如果我通过’201211’作为参数,它应该返回’20121130’作为答案,因为它是11月的最后一个星期五的日期.
解决方法
1900年1月5日是星期五.这使用了基准日期并计算任何给定月份的最后一个星期五,但您必须在月份期间给它一个日期而不仅仅是月份本身.将2012-12-01替换为您当月的日期
SELECT DATEADD(DY,DATEDIFF(DY,'1900-01-05',DATEADD(MM,DATEDIFF(MM,'2012-12-01'),30))/7*7,'1900-01-05')
你也可以使用它来取代1900-01-05与1900-01-06等的最后一个星期六.