【发布时间】:2017-09-12 21:03:41
【问题描述】:
我已经找到了获取周数,但是它以不同的方式显示日期。
实际上当我检查日期的周数时
select datepart(wk,'2016-01-02') //Saturday
output: 1
select datepart(wk,'2016-01-03') //Sunday
output: 2
但是当我使用周数获得星期的开始日期和结束日期时,它显示的不同。
DECLARE @weekStart INT
DECLARE @weekEnd INT
DECLARE @Year INT
set @weekStart = 1
set @Year = 2016
DECLARE @WeekStartDate date
DECLARE @WeekEndDate date
SET @WeekStartDate = convert(date,DATEADD (WEEK, @weekStart, DATEADD (YEAR, @Year-1900, 0)) - 4 -
DATEPART(DW, DATEADD (WEEK, @weekStart, DATEADD (YEAR, @Year-1900, 0)) - 4) + 1)
SET @WeekEndDate =convert(date,DATEADD (WEEK, @weekStart+1, DATEADD (YEAR, @Year-1900, 0)) - 4 -
DATEPART(DW, DATEADD (WEEK, @weekStart+1, DATEADD (YEAR, @Year-1900, 0)) - 4) + 1)
select @WeekStartDate,@WeekEndDate
output:
StartingDate EndingDate
--------------------------
2016-01-03 2016-01-09
我期望的输出是,如果我给 week = 1 它应该给 StartingDate = **
2016-01-01和 **EndingDate =2016-01-02对于第 2 周,它应该给
2016-01-03 2016-01-09
【问题讨论】:
-
我只是做一个尺寸表....mssqltips.com/sqlservertip/4054/…
标签: sql sql-server date stored-procedures week-number