获取本周的记录

时间:2014-07-01 21:03:32

标签: tsql sql-server-2012

我有点困惑如何从我的表中获取所有记录,其中CheckInDate(datetime)发生在本周。就像在星期天早上午夜一样。

让这个月很容易:

and year(eci.CheckInDate) = year(getdate())
and month(eci.CheckInDate) = month(getdate())

...但是没有类似于MONTH()和YEAR()的“周”功能。有人可以给我一个关于如何做到这一点的代码示例吗?

2 个答案:

答案 0 :(得分:0)

知道了:

AND eci.CheckInDate > cast(dateadd(day,1-datepart(dw, getdate()), getdate()) as date)

答案 1 :(得分:0)

这是一个可以用来做你想要的解决方案:

declare @WeekStart datetime = dateadd(week, datediff(week, 0, GetDate()), 0)
select @WeekStart

它比它看起来更简单。这是它正在做的事情:

Add to week 0 the number of weeks from 0 to now. 

简单而有效。

顺便说一句,您可以使用相同的方法截断到秒,分钟,小时,日,周,月,季等。