在 Sybase 中获取当前周的开始和结束日期

jFr*_*ram 2 sql sybase getdate sap-ase

我正在尝试获取 Sybase ASE 数据库中表的当前周的开始和结束日期,并将这些日期作为可以添加到插入调用中的变量返回。

理想情况下,该功能可以简单地基于该getDate()功能工作。我尝试了其他方法并查看了其他答案,但很少有人专门针对 Sybase 语法。任何帮助,将不胜感激!

Mic*_*ner 5

您可以使用下列组合datepart,并dateadd找到了一周的第一天和最后一天。可能不是最有效的方法,因为我不是 SQL 开发人员,但它会起作用。默认设置有几周从周日开始到周六结束。

declare @dw_number smallint,
        @to_first_dw smallint,
        @to_last_dw smallint,
        @wk_begin_date datetime,
        @wk_end_date datetime,

select @dw_number = datepart(dw,getdate())  //get day of week number

select @to_first_dw = (@dw_number -1) * -1,  //get number of days to subtract to get week start
       @to_last_dw = 7 - @dw_number          //get number of days to add to get week end

select @wk_begin_date = dateadd(dd,@to_first_dw,getdate()),
       @wk_end_date = dateadd(dd,@to_last_dw,getdate())

select @wk_begin_date, @wk_end_date
Run Code Online (Sandbox Code Playgroud)