我有一个带日期列的行。我需要找到最接近每周结束的值。
实施例: 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。
希望这是有道理的。
答案 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'