首页 > 解决方案 > 从星期一到星期一的日期变量,时间为 8:00

问题描述

如何为程序创建两个带有日期的变量,无论何时开始:第一个变量 - 上一个星期一的 8:00 第二个变量 - 最后一个星期一的 8:00(即变量之间的差异是一周)

我试过这个,但它显示时间 00:00

SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 0)

SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 7)

标签: sql-serverdatevariables

解决方案


不确定这是否能回答您的问题,但以下以欧洲格式返回日期,时间为上午 8 点。如果您需要美国格式,您可能需要更改 dateadd() 函数。

有点嵌套,但看看这是否有帮助

编辑:使其更简单并修改了您的初始代码。

set DATEFIRST 1 --Monday

select

cast(concat(convert(varchar,dateadd(dd,1 - datepart(dw,getdate()),getdate()),101),' 8:00') as datetime)
,cast(concat(convert(varchar,dateadd(dd,1 - datepart(dw,getdate()),getdate()+7),101),' 8:00') as datetime)

看看这是否有效。


推荐阅读