我如何将一年周(例如0852或200852)转换为日期(例如2008-12-31或特别是周末结束日,即2008-12-27周六或周开始日,即2008-12-21 )?星期五,星期六,星期日或星期一,星期结束的任何一天都会.
MS SQL SERVER有DATEADD功能,应该有帮助......
DECLARE @date_string NCHAR(6) SELECT @date_string = N'200852' SELECT DATEADD( WEEK, CAST(RIGHT(@date_string, 2) AS INT), DATEADD( YEAR, CAST(LEFT(@date_string, 4) AS INT) - 1900, 0 ) )
编辑:
对不起,错过了关于星期六等等的一点......
获得该值后,使用DATEPART获取一周中的哪一天,并从您的答案中减去...
DECLARE @new_date DATETIME SELECT @new_date = '2008 Dec 30' SELECT DATEADD(DAY, 1-DATEPART(dw, @new_date), @new_date)
这会将值带到一周的开始,具体取决于您将DATEFIRST设置为的值.