繁体   English   中英

如何在工作日获取日期?

[英]How get dates on week day?

我想询问如何在工作日获取约会

在此输入图像描述

green is weekday

red is sunday

因此,当我输入sql命令时(如27),2012年它将显示2012-07-2的日期,直到2012-07-08

此查询使用单个参数@weekno作为输入,并返回该周的7天,将星期一作为星期的第一天。 WeekNo的定义遵循SQL Server的DatePart(Week)因为它取决于@@ Datefirst。 事实并非如此。

dateadd..行是一个返回一年中第一个星期一的表达式。 我是从这里得到的。 它上面的一行只增加了几周,而0-6就增加了7天。 要验证这对于任何年份是否正确,请将查询中的CURRENT_TIMESTAMP更改为日期,例如20180708 仅供参考,2018年1月1日是星期一。

declare @weekno int = 27;
select
    (@weekno-1)*7+v.num+
    dateadd(dd,(datediff(dd,0,dateadd(yy,datediff(yy,0,CURRENT_TIMESTAMP),6))/7)*7,0)
from (values(0),(1),(2),(3),(4),(5),(6))v(num)
order by num

-- results
July, 02 2012 00:00:00+0000
July, 03 2012 00:00:00+0000
July, 04 2012 00:00:00+0000
July, 05 2012 00:00:00+0000
July, 06 2012 00:00:00+0000
July, 07 2012 00:00:00+0000
July, 08 2012 00:00:00+0000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM