首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在下周三17时在Server 2008中查找目标数据

如何在下周三17时在Server 2008中查找目标数据
EN

Stack Overflow用户
提问于 2013-12-23 11:30:54
回答 1查看 73关注 0票数 0

我们有一个包裹递送系统,它将收到的包裹记录为ParcelReceivedDate,一个日期时间字段。

我们必须定义一个目标交货日期和时间的方式,任何包裹收到的星期六或周日必须有一个目标交货日期为下周三格林尼治时间1700格林尼治时间。

代码语言:javascript
复制
 CASE 
     WHEN Priority = 'Normal' and DATENAME(weekday,ParcelReceivedDate) IN ('Saturday') 
     THEN ??

     WHEN Priority = 'Normal' and DATENAME(weekday,ParcelReceivedDate) IN ('Sunday')  
     THEN ??

     Else DATEADD(hour,24,ParcelReceivedDate)
 END as ParcelTargetDate
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-23 11:37:36

试试这个:

代码语言:javascript
复制
CASE 
    WHEN Priority = 'Normal' and DATENAME(weekday,ParcelReceivedDate) IN ('Saturday') 
    THEN
        dateadd(second, -datepart(second, ParcelReceivedDate), 
            dateadd(minute, -datepart(minute, ParcelReceivedDate), 
                dateadd(hour, 17 - datepart(hour, ParcelReceivedDate), 
                    dateadd(day, 4, ParcelReceivedDate)
                )
            )
        )
    WHEN Priority = 'Normal' and DATENAME(weekday,ParcelReceivedDate) IN ('Sunday')  
    THEN
        dateadd(second, -datepart(second, ParcelReceivedDate), 
            dateadd(minute, -datepart(minute, ParcelReceivedDate), 
                dateadd(hour, 17 - datepart(hour, ParcelReceivedDate), 
                    dateadd(day, 3, ParcelReceivedDate)
                )
            )
        )
    ELSE DATEADD(hour,24,ParcelReceivedDate
END as ParcelTargetDate

你知道你是在星期六还是星期天,所以你加上抵消日到星期三。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20742645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档