gpt4 book ai didi

vbscript - DateDiff 返回 Null 或 vbNull 但无法在 if 语句中检查它

转载 作者:行者123 更新时间:2023-12-04 04:33:09 25 4
gpt4 key购买 nike

让我先解决一些问题:

  • 是的,我必须维护一些遗留代码。
  • 是的,我意识到它是过时的、过时的和可怕的。
  • 是的,有时我收到的日期是 NULL。
  • 不,我不能切换到更新的东西。

  • 我有以下一段代码:
    If DateDiff("y", Date(), someDate) > 0 Then
    'Do something here
    End If

    但是,我发现 someDate 可以 NULL .

    我决定查找 DateDiff 在它收到一个 NULL 日期的情况下会返回什么。 Microsoft's reference是妈妈。

    因此,我决定进行自己的测试,看看是否可以找出:
    Response.Write TypeName(DateDiff("y", Date(), NULL))

    这输出 Null .
    Response.Write VarType(DateDiff("y", Date(), NULL))

    输出 1等于 vbNull .

    因此,我尝试了以下操作(我也尝试与 vbNull 进行比较):
    If DateDiff("y", Date(), NULL) = NULL Then
    Response.Write "Yes"
    Else
    Response.Write "No"
    End If

    这输出 No ...

    这是疯狂的部分......

    我尝试反转比较:
    If DateDiff("y", Date(), NULL) <> NULL Then
    Response.Write "Yes"
    Else
    Response.Write "No"
    End If

    它仍然输出 No ...

    这是怎么回事?如何在 if 块中检查此返回?我失去理智了吗?

    最佳答案

    您正在寻找 IsNull()功能。您不能使用 = 与 vbNull 进行比较。比较运算符 - 必须使用函数进行检查。声明Null = Null实际上等于 false,这在某种程度上解释了您奇怪的测试结果。

    关于vbscript - DateDiff 返回 Null 或 vbNull 但无法在 if 语句中检查它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20229467/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com