【问题标题】:Adding only certain days to a DateAdd in SQL?在 SQL 中只向 DateAdd 添加特定日期?
【发布时间】:2011-07-11 17:20:00
【问题描述】:
我正在处理一份库存报告,该报告计算了我们每周平均消耗的特定零件,然后将其除以我们手头的数量,以显示一个数字“手头的周数”。因此,如果我们的平均每周消费量为 496 并且我们有 1500 件可用,那么手头的周数应该是 3.02。
我要做的是取那个数字并准确计算出我们将在哪一天用完相关零件。所以我们会在 3.02 周后用完示例部分。我的问题是我必须排除周五 - 周日,所以每个工作周只有四天。
我查看了 DATEADD() 函数,这似乎是我需要使用的,但我只是不确定如何从中排除星期五。我为此使用 SQL 2005。
非常感谢!
【问题讨论】:
标签:
sql-server-2005
date
dateadd
【解决方案1】:
DECLARE @old_dt SMALLDATETIME
SET @old_dt = GETDATE()
DECLARE @new_dt SMALLDATETIME
SET @new_dt = DATEADD(d,CAST(3.2*7 AS INT),@old_dt)
SELECT CASE WHEN DATENAME(weekday,@new_dt) = 'Thursday' THEN DATEADD(d,2,@new_dt) WHEN DATENAME(weekday,@new_dt) = 'Friday' THEN DATEADD(d,1,@new_dt) ELSE @new_dt END