Fis*_*ury 0 sql sql-server-2008
如何使用 SQL 计算给定日期的当月最后一个工作日?
我能够获得当月的最后一天,但不确定如何以编程方式执行最后一个工作日。
我不想生成日历查找表。
这是我当前使用的每月最后一天代码:
declare @date datetime
set @date='1/4/13'
select DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @date) + 1, 0))
Run Code Online (Sandbox Code Playgroud)
相当巧妙的解决方案:
declare @date1 as date = '20130401'
declare @date as date= eomonth(@date1,0)
set @date = (select case
when datepart(dw,@date) = 1 then dateadd(day,-2,@date) --when day is a sunday subtract 2 day to friday
when datepart(dw,@date) = 7 then dateadd(day,-1,@date) --when day is a saturday subtract 1 day to friday
else @date END)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20049 次 |
| 最近记录: |