【发布时间】:2013-12-23 11:30:54
【问题描述】:
我们有一个包裹递送系统,将收到的包裹记录为 ParcelReceivedDate,一个日期时间字段。
我们必须以这样的方式定义目标递送日期和时间,这样在周六或周日收到的任何包裹都必须将目标递送日期设置为下周三 1700 GMT。
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
【问题讨论】:
-
我已经编辑了我的答案。检查语法,但主要道路已被追踪;)
-
你有,或者你能创建一个calendar table吗?这将是解决此问题的最简单方法。
标签: sql sql-server sql-server-2008 datetime