查找当前星期的开始日期(星期一)
问题描述:
查找将确定当前星期的开始日期(星期一)的SQL查询/查询。查找当前星期的开始日期(星期一)
例子: 如果今天是 - >然后一周的开始是
Sat Oct 09, 2010 -> Start of the week is Monday Oct 04, 2010
Sun Oct 10, 2010 -> Start of the week is Monday Oct 04, 2010
Mon Oct 11, 2010 -> Start of the week is Monday Oct 11, 2010
Tue Oct 12, 2010 -> Start of the week is Monday Oct 11, 2010
我看到的谷歌和*上很多的“解决方案”。外观类似:
SET @pInputDate = CONVERT(VARCHAR(10), @pInputDate, 111)
SELECT DATEADD(DD, 1 - DATEPART(DW, @pInputDate), @pInputDate)
失败的原因是: 太阳2010年10月10日 - >启动周的星期一二零一零年十月一十一日(这是不正确的)。
答
尝试使用DATEFIRST
明确设置星期几为“第一”。
set DATEFIRST 1 --Monday
select DATEADD(DD, 1 - DATEPART(DW, @pInputDate), @pInputDate)
这将返回InputDate落在周的星期一。
+0
我发现了另一个解决方案,但这个更简单,更清洁。谢谢。 – 2010-10-14 21:27:32
+0
我们如何才能找到星期一的最后一个星期?我试图在表达中而不是1-表达,但没有运气。有什么建议么? – 2017-09-12 06:28:45
你需要找到只在周一或每周的第一个工作日? – 2010-10-14 19:41:19
无论是工作日还是假日,我都希望每周的开始(星期一)。 – 2010-10-14 21:22:16