【问题标题】:VBA - Convert string to datetime to compare with date in SQLVBA - 将字符串转换为日期时间以与 SQL 中的日期进行比较
【发布时间】:2021-10-07 11:12:36
【问题描述】:

可能是一个简单的问题,但我还没有在任何论坛上找到答案。

我正在使用 VBA 将数据从开源推送到 SQL,我需要我的代码做的是检查 SQL 中最新数据的时间戳以确定它是否需要检索更多数据,或者它是最是最新的。

通过使用 ADODB,我可以从 SQL 中检索最新日期,如下所示

print latest_date
13/07/2021 8:14:50 PM

以及我想收集的数据的日期

print resource_date
'2021-07-13 20:14:50'

如您所见,resource_date 是一个字符串,latest_date 是 ADODB 记录集中的一个项目。无法在 If 语句中比较它们是否相同。

我尝试过使用CDate(),但出现类型不匹配的错误。

感谢任何帮助。

谢谢

【问题讨论】:

  • 您正在为格式化的值而烦恼。 VBA 将日期存储在 Double 中,参见例如cdbl(now)。您需要检查 SQL 数据库如何存储日期(很可能也是双精度,但零日期可能不同)。获取该数据,必要时调整零点,然后您可以轻松比较它们。

标签: sql vba adodb


【解决方案1】:

将文本日期转换为真实日期值并使用DateDiff进行比较,例如按第二个(“s”):

If DateDiff("s", print latest_date, CDate(resource_date)) > 0
    ' latest_date is earlier than resource_date.
End If

【讨论】:

    猜你喜欢
    • 2016-12-02
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2021-11-17
    • 2019-04-12
    相关资源
    最近更新 更多