Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在工作日安排约会?_Sql_Sql Server_Date - Fatal编程技术网

Sql 如何在工作日安排约会?

Sql 如何在工作日安排约会?,sql,sql-server,date,Sql,Sql Server,Date,我想问一下如何在工作日约会 绿色是工作日 红色是星期天 所以当我在2012年输入sql命令时(比如27) 它将显示日期2012-07-2至2012-07-08此查询使用单个参数@weekno作为输入,并返回该周的7天,以周一为一周的第一天。WeekNo的定义不遵循SQL Server的DatePart(Week),因为这取决于@Datefirst。这不是 dateadd..行是返回一年中第一个星期一的表达式。我是从你那儿得到的。上面的一行只是将周数相加,0-6表示7天。若要验证这对于任何年份都

我想问一下如何在工作日约会

绿色是工作日

红色是星期天

所以当我在2012年输入sql命令时(比如27)
它将显示日期2012-07-2至2012-07-08

此查询使用单个参数
@weekno
作为输入,并返回该周的7天,以周一为一周的第一天。WeekNo的定义不遵循SQL Server的
DatePart(Week)
,因为这取决于@Datefirst。这不是

dateadd..
行是返回一年中第一个星期一的表达式。我是从你那儿得到的。上面的一行只是将周数相加,0-6表示7天。若要验证这对于任何年份都是正确的,请将查询中的
CURRENT\u 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

对用于数据库。我想计算每个星期的生产日,我必须将每周的范围输入数据库。实际上是SQl server。谢谢,输出是7行,代表一周中的几天?是的,如果你不介意的话,我可以问一下我必须把@weekno放在哪里。谢谢,这样,查询中就没有
@weekno
。@Andriy我不应该饿着肚子打字而出错:)