日期:2014-05-18  浏览次数:20663 次

知道某年某周,如何求该周的第一天和最后一天呢?
如知道   2007年第1周,如何求该周的第一天和最后一天呢?

如:   2007年,第1周,得到如下表示
---------------------------------------
2006-12-31   00:00:00.000
2007-01-06   00:00:00.000


2007年,第2周,得到如下表示
---------------------------------------
2007-01-07   00:00:00.000
2007-01-13   00:00:00.000


急求指点,谢谢呀



------解决方案--------------------
select top 1 字段 from (已知的记录集 order by 字段 ASC)——第一天
select top 1 字段 from (已知的记录集 order by 字段 DESC)——最后一天

------解决方案--------------------
declare @year int,@week int,@day datetime
select @year = 2007,@week = 3,@day = convert(char(4),@year) + '0101 '
select dateadd(day,(@week-1)*7 -datepart(week,@day),@day) as 第一天,dateadd(day,(@week-1)*7+6-datepart(week,@day),@day) as 最后一天
------解决方案--------------------
declare @year int, @week int
select @year = 2007, @week = 1
select dateadd(day, @week * 7 - datepart(weekday, dateadd(year, @year - 1900, 0)) - 6, dateadd(year, @year - 1900, 0)),
dateadd(day, @week * 7 - datepart(weekday, dateadd(year, @year - 1900, 0)) + 1, dateadd(year, @year - 1900, 0))
------解决方案--------------------
从一个已知的第一天、最后一天datepart(weekday,,)就可以的