SQL服务器:获取星期六的星期数作为星期的第一天

时间:2017-04-18 09:59:10

标签: sql sql-server

我正在寻找一个sql脚本来计算星期六作为一周的第一天的周数。

示例:

2017-04-01 : Week 1
2017-04-02 : Week 1
(.................)
2017-04-08 : Week 2

感谢。

4 个答案:

答案 0 :(得分:0)

您可以将DATEFIRSTDATEADD一起使用。将DATEFIRST设置为值6代表星期六。

试试这个(用您的yourDate列替换datetime):

SET DATEFIRST 6
select datediff(week, dateadd(month, 0, yourDate), yourDate) + 1

答案 1 :(得分:0)

您可以使用此查询

DECLARE @currentdate date = '2017-04-01'
select floor((datepart(day,@currentdate) - 1)/7) + 1 AS WeekOfMonth

--- @currentdate date = '2017-04-01' -- return 1
--- @currentdate date = '2017-04-07' -- return 1
--- @currentdate date = '2017-04-08' -- return 2

答案 2 :(得分:0)

请使用以下查询:

 SELECT 'Week '+ CAST(FLOOR((datepart(day,@YourDate) - 1)/7) + 1 AS VARCHAR(10)) Currentweek

答案 3 :(得分:0)

试试这个,我认为这就是你所需要的一切:

set datefirst 6

declare @dt datetime
set @dt = '2017-03-04'

select datepart(wk, @dt) - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1 as weekOfMonth