従来の ASP では、変数で DateAdd() を使用できません。これが機能する理由はわかりません。
strTargetDate=DateAdd("d",visitDate,followDate)
visitDate は 30、60、90、180 などの増分値です。 followDate は実際の日付です。ただし、このコードを使用すると型の不一致エラーが発生します。これはいけませんか??
従来の ASP では、変数で DateAdd() を使用できません。これが機能する理由はわかりません。
strTargetDate=DateAdd("d",visitDate,followDate)
visitDate は 30、60、90、180 などの増分値です。 followDate は実際の日付です。ただし、このコードを使用すると型の不一致エラーが発生します。これはいけませんか??
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
>>