我正在尝试获取Sybase ASE数据库中表的当前周的开始日期和结束日期,并将这些日期作为我可以添加到插入调用中的变量返回。
理想情况下,该功能可以简单地基于getDate()
功能。我尝试过其他方法&看了其他答案,但很少有人专门针对Sybase语法。任何帮助,将不胜感激!
答案 0 :(得分:4)
您可以使用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