两列之间的日期差异

时间:2015-03-12 06:20:52

标签: sql-server date

请帮助您解决以下关于两个日期之间差异的问题。

我当前的表格与大量列相结合,但我想添加另一列来确定日期差异。

应比较表中的两列,然后必须在新添加的列中填充日期差异,但不应考虑小时,秒,毫秒。查询应该只计算不同的日期更改。

- ServiceDt    (2014/09/22)
- ServiceToDt
- SettleDt
- ReceiveDt
- AssessDt     (2014/10/01)

- New Column   ( 9 Days) 

必须使用New ColumnServiceDt之间的差异更新AssessDt

日期差异应计为9天,因为发生了9个不同的时间日期。

希望上述任何一点都有意义。我已经尝试了很多查询,并且不能给你一个例子,因为他们没有工作。

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用:DATEDIFF(DAY, FromDate, ToDate)

SELECT
    *,
    NewCol = DATEDIFF(DAY, ServiceDt, AssessDt)
FROM table

答案 1 :(得分:0)

使用计算列

  ALTER TABLE tbl
ADD DATE_DIFFS AS DATEDIFF(DAY, ServiceDt , AssessDt)

答案 2 :(得分:0)

您可能不应该添加计算列,数据已经存在。您可以创建一个视图。这将包含相同的信息。

CREATE VIEW v_yourview as
SELECT 
  ServiceDt,
 ServiceToDt,
 SettleDt,
 ReceiveDt,
 AssessDt,
 DATEDIFF(DAY, ServiceDt, AssessDt) difference
FROM yourtable

如果出于性能原因需要额外的列。创建一个PERSISTED计算列。在创建索引时,这将像普通列一样工作。

ALTER TABLE yourtable 
ADD cDifference as DATEDIFF(DAY, ServiceDt, AssessDt) PERSISTED