Sql如何从5周开始和结束日期获得

时间:2017-04-13 08:11:52

标签: sql sql-server

在SQL server中,我想显示报告的日期和时间段。 WHERE子句中的时间段如下:

WHERE EventDate >= dateadd(wk, datediff(wk, 0, getdate()) -5, 0) 
    AND EventDate <= dateadd(wk, datediff(wk, 0, getdate()), 0)

我该如何以“2017年3月26日 - 2017年4月13日”

的格式显示

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您希望将来从5周前到5周。

您可以尝试以下方法:

-- etc
WHERE EventDate BETWEEN dateadd(week,-5,getdate()) AND dateadd(week,5,getdate());

如果您想显示日期,可以试试这个:

SELECT format(dateadd(week,-5,getdate()),'d MMM yyyy') +' - '+ format(dateadd(week,5,getdate()),'d MMM yyyy');

答案 1 :(得分:0)

如果您只想查看日期,只需使用选择:

select dateadd(wk, datediff(wk, 0, getdate()) -5, 0)
    , dateadd(wk, datediff(wk, 0, getdate()), 0)

如果您想看格式:“2017年3月26日 - 2017年4月13日”:

select cast(dateadd(wk, datediff(wk, 0, getdate()) -5, 0) as varchar(20)) + 
    ' - ' + 
    cast(dateadd(wk, datediff(wk, 0, getdate()), 0) as varchar(20))