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

时间:2014-06-24 15:48:49

标签: sql sybase sybase-ase getdate

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

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

1 个答案:

答案 0 :(得分:4)

您可以使用datepartdateadd的以下组合来查找一周的第一天和最后一天。可能不是最有效的方法,因为我不是一个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