查找最近的一周最后一天

发布于 2024-10-13 04:10:18 字数 205 浏览 6 评论 0原文

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

例子: 对于第 3 周 - 1 月 9 日,从值 4,5,6 Jan 中,它将返回 6 Jan,对于第 10 - 16 周,从值 10,11 中,它将返回 11 Jan。

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

希望这是有道理的。

I have rows with a date column. I need to find the values closest to the end of each week.

Example:
For week 3 - 9 Jan, from the values 4,5,6 Jan, it will return 6 Jan, and for week 10 - 16 Jan, from the values 10,11 it will return 11 Jan.

So out of the rows containing 4,5,6,10,11 Jan, the query should return Thu 6 and Tue 11 Jan.

Hope this makes sense.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

宣告ˉ结束 2024-10-20 04:10:18

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

对于 SQL Server,您可以使用此

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

注意:“周”从周日到周六运行,除非您使用 SET DATEFIRST 更改一周的第一天。

要运行周一到周日,请使用此

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'

You need to state which RDBMS you are working with for a better answer.

For SQL Server, you can use this

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

Note: the "week" runs from Sun-Sat unless you use SET DATEFIRST to change the first day of week.

To run Mon-Sun, use this instead

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

Test table used

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'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文