2012-09-05 43 views
0

我已经看到了像这样的一个很少的问题,但没有一个解决方案与我拥有的结构相当适用。返回SQL中两个日期列之间的天数

我当前的查询创建了一个包含4列的表格,其中2个是日期。

我声明这是一个表@tblTransactions,我稍后在select语句中调用。 我需要最后的选择语句有第5列显示两个日期之间的天数。

SELECT * 
     ,(t.PremDueDate - t.LastTdate) AS 'tpFactor'   <-------- This doesn't work 
FROM 
     @tblTransactions t 

上面的代码显然是行不通的,因为PremDueDate和LastTdate都是数据类型date的。

使用SQL Server Management Studio 2010中

回答

5

使用DATEDIFF()得到两个日期之间的天数:

SELECT DATEDIFF(DAY, t.PremDueDate, t.LastTdate) AS 'tpFactor' 
FROM @tblTransactions t 
+0

工作得很好。我发现'DATEDIFF(dd,t.PremDueDate,t.LastTdate)AS'tpFactor''也可以。 'DD'和'DAY'有什么区别? –

+1

这是一样的,'dd'和'd'都是'DAY'的别名/缩写。他们都工作得很好:-) –

2

试试这个:

SELECT * 
    ,DATEDIFF(DD, t.LastTdate, t.PremDueDateP) AS 'tpFactor' 
FROM 
    @tblTransactions t