获取两个星期六前和最后一个星期五的日期

时间:2020-10-15 23:46:23

标签: sql-server date

如何获取2个星期五前和2个星期六前的日期(SQL Server 2012 +)

例如,

  • 如果今天运行,即10月12日星期一,我的查询应导致10月3日星期六和10月9日星期五
  • 如果在10月20日星期二运行,我的日期应该是10月10日星期六和10月16日星期五

我正在寻找像id这样的答案。

2 个答案:

答案 0 :(得分:1)

@Andresbi,您的示例指出了2个星期六之前和 1个星期五之前

我认为这段代码可以为您提供结果:

declare @dt datetime = '20201020'

select
    (
        /* Previous sunday */
        @dt - datepart(dw, @dt) + 1
        /* Previous saturday */
        - 1
        /* and the saturday before */
        - 7
    ),
    (
        /* Previous sunday */
        @dt - datepart(dw, @dt) + 1
        /* Previous friday */
        - 2
    )

答案 1 :(得分:0)

select dateadd(day, -08, dateadd(wk, datediff(wk, 0, getdate()), 0))
select dateadd(day, -10, dateadd(wk, datediff(wk, 0, getdate()), 0))