当前位置:  开发笔记 > 数据库 > 正文

如何将一周(200851)转换为日期(2008-12-27)?

如何解决《如何将一周(200851)转换为日期(2008-12-27)?》经验,为你挑选了1个好方法。

我如何将一年周(例如0852或200852)转换为日期(例如2008-12-31或特别是周末结束日,即2008-12-27周六或周开始日,即2008-12-21 )?星期五,星期六,星期日或星期一,星期结束的任何一天都会.



1> MatBailie..:

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设置为的值.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有