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我不应该饿着肚子打字而出错:)