失去战斗 - Datediff工作,但我想申请条件

时间:2013-09-04 09:14:08

标签: datediff

我知道当我看到答案时我会'踢自己',但现在我看不到它。

SELECT [faxdate]
,DATEDIFF(day, 
 CAST(SUBSTRING(RPT.FaxDate, 1, 4) + '-' + SUBSTRING(RPT.FaxDate, 5, 2) + '-' + SUBSTRING(RPT.FaxDate, 7, 2) AS DATE), getdate()) AS vDiff
  

faxdate vDiff
20130704 62
20130705 61   
20130705 61
20130708 58

效果很好,但我希望能够测试天数Eg。记录超过60天。 当我添加这个:

WHERE (DATEDIFF(day, 
 CAST(SUBSTRING(RPT.FaxDate, 1, 4) + '-' + SUBSTRING(RPT.FaxDate, 5, 2) + '-' + SUBSTRING(RPT.FaxDate, 7, 2) AS DATE), getdate()) >60)

我得到:从字符串转换日期和/或时间时转换失败。

我也试过这个sql作为派生表然后测试了vDiff ....我显然没有做对

任何帮助将不胜感激

ttfn

马丁
(英格兰康沃尔郡并没有下雨......结果!)

1 个答案:

答案 0 :(得分:0)

尝试

SELECT [faxdate],DAY(DATEDIFF(CAST(SUBSTRING(RPT.FaxDate, 1, 4) + '-' +
SUBSTRING(RPT.FaxDate, 5, 2) + '-' + SUBSTRING(RPT.FaxDate, 7, 2) AS DATE), 
getdate())) AS vDiff

而不是使用where,使用如下所示

HAVING vDiff > 60