0

在经典 ASP 中,我无法将 DateAdd() 与变量一起使用。我看不出为什么这应该起作用。

strTargetDate=DateAdd("d",visitDate,followDate)

visitDate 是一个增量值——30、60、90、180 等。followDate 是一个实际日期。但是,我使用此代码收到类型不匹配错误。这不应该工作吗?

4

1 回答 1

2

visitDate 不是/不能转换为数字,或者 followDate 不是/不能转换为日期。因此,请检查您输入的 TypeName() 并注意日期格式。

部分是为了证明与@Ken 的猜测相反的事实:

>> s = "string"
>> WScript.Echo 0, s, TypeName(s)
>> s = DateAdd("d", 1, Now)
>> WScript.Echo 1, s, TypeName(s)
>> s = DateAdd("d", "1", CStr(now))
>> WScript.Echo 2, s, TypeName(s)
>> s = DateAdd("d", 1, "20/10/2013")
>>
0 string String
1 24.10.2013 17:05:54 Date
2 24.10.2013 17:05:54 Date
>> s = DateAdd("d", 1, "32.13.1")
>>
Error Number:       13
Error Description:  Type mismatch

更新 wrt 评论:

由于涉及 Null 的计算应该传播 Null,因此

>> WScript.Echo TypeName(DateAdd("d", 1, Null))
>>
Null
>>

不足为奇。虽然您应该以适合您的应用程序的方式处理 DateAdd() 的 Null,但它们不是类型不匹配的原因。

然而,空字符串 ("") 很可能是罪魁祸首:

>> WScript.Echo TypeName(DateAdd("d", 1, ""))
>>
Error Number:       13
Error Description:  Type mismatch
>>
于 2013-10-23T14:58:28.457 回答