我知道当我看到答案时我会'踢自己',但现在我看不到它。
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
马丁
(英格兰康沃尔郡并没有下雨......结果!)
答案 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