如何获取DateAdd表达式返回的给定日期的周结束日期

时间:2010-03-16 19:41:35

标签: sql-server dateadd

不确定如何获取当前表达式并获取一周的结束日期。

我当前的表达式返回日期,距离今天一周。

DateAdd(DateInterval.WeekOfYear, 1, today())

我想要做的是返回该周的结束日期(星期六)。

我需要在此表达式中添加什么才能获得所需的结果?

谢谢!

好吧,看起来我已经拥有它,但它很难看。任何人都可以帮我简化这个吗?

这就是我所拥有的,基于将Raj的例子变成一个表达式:

=“一周预计积压w / e”&使用DateAdd(DateInterval.Day,   -1 * DatePart(DateInterval.WeekDay,   (DateAdd(DateInterval.WeekOfYear,1,today())))+ 7,   (DateAdd(DateInterval.WeekOfYear,1,today())))

2 个答案:

答案 0 :(得分:6)

试试这个

Declare @DateValue DateTime = '3/1/2010'

select DATEADD (D, -1 * DatePart (DW, @DateValue) + 7, @DateValue)

我基本上计算了一周的哪一天,然后是传入的日期,然后用-1乘数软件计算一周的开始,并通过向它添加7来向前移动到星期六。

当然,只有在SQL Server设置为从星期日开始的那周

时,这才有效

对于SQL Server报告服务,我认为这应该适用于本周的星期六

DATEADD (DateInterval.Day, -1 * DatePart (DateInterval.DayOfWeek, Today()) + 7, Today())

下周六周六

DATEADD (DateInterval.Day, -1 * DatePart (DateInterval.DayOfWeek, Today()) + 14, Today())

答案 1 :(得分:0)

怎么样?

select dateadd(ww,-2,'1-27-2014')+4