0

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

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

传真日期 vDiff
20130704 62
20130705 61
20130705 61
20130708 58

效果很好,但我希望能够测试天数,例如。记录超过 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

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

4

1 回答 1

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
于 2013-09-04T09:53:34.913 回答