我有点困惑如何从我的表中获取所有记录,其中CheckInDate(datetime)发生在本周。就像在星期天早上午夜一样。
让这个月很容易:
and year(eci.CheckInDate) = year(getdate())
and month(eci.CheckInDate) = month(getdate())
...但是没有类似于MONTH()和YEAR()的“周”功能。有人可以给我一个关于如何做到这一点的代码示例吗?
答案 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.
简单而有效。
顺便说一句,您可以使用相同的方法截断到秒,分钟,小时,日,周,月,季等。