日期比较不正确

Posted

技术标签:

【中文标题】日期比较不正确【英文标题】:Date comparison is incorrect 【发布时间】:2016-02-29 15:20:03 【问题描述】:

这只是我正在编写的 vba 代码的一部分,简单的日期比较不起作用。我有一张包含大量数据的表格,vba 代码创建了一个数据透视表。该代码运行良好并且过滤掉了所有过去的日期,但由于某种原因(今天是 2 月 29 日)它没有过滤掉(2 月 3 日和 2 月 4 日)。它会正确过滤掉所有其他 2 月的日期,但它只是这两个日期。有谁知道出了什么问题?

With ActiveSheet.PivotTables("pivottable1").PivotFields("issuedate")
    For Each pi In .PivotItems
        If pi < Date Then
            pi.Visible = False
        End If
    Next pi
End With

【问题讨论】:

***.com/help/how-to-ask先按此提问 我曾经遇到过来自 SQL Server 的日期的类似问题。问题是 Excel 不理解来自 SQL Server 的 datetime 字段,因为它包含毫秒。所以日期格式是2015-02-04 00:00:00.000。 Excel 无法理解这一点。但是如果你把它改成2015-02-04 00:00:00,那么它就可以工作了。会不会是这个问题? 你也可以使用函数DateDiff 【参考方案1】:

您是否检查过列类型是日期而不是字符串?也许试试 CDate(pi)?

如果这不起作用,请发布不起作用的日期 - 也许通过执行 Debug.print(pi)。

【讨论】:

Typename(Pi)必须是date。另外,不要使用名称混乱的变量,比如 Pi ,应该已经是 3.1415 但奇怪的是不是......

以上是关于日期比较不正确的主要内容,如果未能解决你的问题,请参考以下文章

无法正确比较 oracle 中的 2 个日期

SQL Server 日期比较问题

在 Android 中比较日期的最佳方法

查询中的日期比较:逻辑正确但结果错误

iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法

日期格式不正确 java