1

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

示例:对于 1 月 3 日至 9 日,从 1 月 4、5、6 的值开始,它将返回 1 月 6 日,对于 1 月 10 日至 16 日,从值 10,11 开始,它将返回 1 月 11 日。

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

希望这是有道理的。

4

1 回答 1

1

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

对于 SQL Server,您可以使用此

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

注意:除非您使用 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'
于 2011-01-23T12:10:19.797 回答