查找最接近的一周中的最后一天

时间:2011-01-23 12:05:22

标签: sql dayofweek

我有一个带日期列的行。我需要找到最接近每周结束的值。

实施例: 1月3日至9月1日,从1月4日,5月1日开始,1月6日将返回,1月10日至16日,价值10,11将返回1月11日。

因此,在包含4,5,6,10,11 Jan的行中,查询应返回Thu 6和Tue 11 Jan。

希望这是有道理的。

1 个答案:

答案 0 :(得分:1)

您需要说明您正在使用哪种RDBMS以获得更好的答案。

对于SQL Server,您可以使用此

select MAX(date)
from #tmp
group by DATEPART(wk, date)

注意:“周”从Sun-Sat开始运行,除非您使用SET DATEFIRST更改一周的第一天。

要运行Mon-Sun,请改用

select MAX(date)
from #tmp
group by DATEPART(wk, date-1)

使用的测试表

create table #tmp (date datetime)
insert #tmp select '20110104'
insert #tmp select '20110105'
insert #tmp select '20110106'
insert #tmp select '20110110'
insert #tmp select '20110111'