Sql server 从日期字段中减去日期

Sql server 从日期字段中减去日期,sql-server,date,Sql Server,Date,原始问题 我需要编写一个Microsoft SQL语句,从另一个表的天数中减去一个日期。因此,本质上,下表示例如下: Table 1 (date) Table 2 (number of days) 2013-05-08 23:59:13.000 7 2013-05-08 23:59:16.000 7 2013-05-08 23:59:06.000 7 任何帮助都将不胜感激 更新的问题 我唯一需要处理的两项是以下信息: 我需要知道发票在发票队列中的时

原始问题

我需要编写一个Microsoft SQL语句,从另一个表的天数中减去一个日期。因此,本质上,下表示例如下:

Table 1 (date)           Table 2 (number of days)
2013-05-08 23:59:13.000     7
2013-05-08 23:59:16.000     7
2013-05-08 23:59:06.000     7
任何帮助都将不胜感激

更新的问题

我唯一需要处理的两项是以下信息:

我需要知道发票在发票队列中的时间。TimeoutDate是发票将使队列超时的时间,TimeOutDays是队列超时前给出的天数,但它是工作日,因此不包括周末


因此,如果您根据此信息计算,发票已在队列中等待了8个工作日

Select DATEADD(month, -(Table2.day) , Table1.date) 
FROM Table1 Inner Join Table2
ON Table1.Col=Table2.Col
当然,您可以根据自己的结构修改联接。

试试看

SELECT DATEADD(day, -(t2.days), t1.datefield) new_date
  FROM table1 t1 JOIN
       table2 t2 ON t1.id = t2.id
输出:

|                   NEW_DATE |
------------------------------
| May, 01 2013 23:59:13+0000 |
| May, 01 2013 23:59:16+0000 |
| May, 01 2013 23:59:06+0000 |
|             TIMEOUTDATE | TIMEOUTDAYS | DAYSINQUEUE |
-------------------------------------------------------
| 2013-05-14 23:59:13.000 |          10 |           9 |

更新:完全改变问题的解决方案

SELECT timeoutdate,
       timeoutdays,
       timeoutdays
       -((DATEDIFF(dd, GETDATE(), timeoutdate) + 1)
       -(DATEDIFF(wk, GETDATE(), timeoutdate) * 2)
       -(CASE WHEN DATENAME(dw, GETDATE()) = 'Sunday' THEN 1 ELSE 0 END)
       -(CASE WHEN DATENAME(dw, GETDATE()) = 'Saturday' THEN 1 ELSE 0 END)) daysinqueue
FROM table1
输出:

|                   NEW_DATE |
------------------------------
| May, 01 2013 23:59:13+0000 |
| May, 01 2013 23:59:16+0000 |
| May, 01 2013 23:59:06+0000 |
|             TIMEOUTDATE | TIMEOUTDAYS | DAYSINQUEUE |
-------------------------------------------------------
| 2013-05-14 23:59:13.000 |          10 |           9 |


感谢@CMS提供两个日期之间的工作日数

您可以使用DATEADD功能。不过,你们打算如何加入这两张桌子呢?谢谢你们,我会试试的,并让你们知道进展如何@这有什么帮助吗?你的问题需要更多的帮助吗?对不起,我还没有查出来。不过我很快就会查出来的。会让你知道的,谢谢你的跟进是的,彼得,我需要更多的帮助!“我只是提出了我的问题……而且有点难。”@首先,你最好在你的原始问题中发布你的补充信息。只需使用编辑链接即可。并删除张贴的答案。其次,您的解释非常混乱,与您提供的样本数据不相关。您能否以表格形式发布源样本数据和基于该数据的期望结果?