Datetime 是否存在影响VB脚本中NOW()函数使用的已知问题

Datetime 是否存在影响VB脚本中NOW()函数使用的已知问题,datetime,vbscript,Datetime,Vbscript,我对NOW()函数有一个问题。我使用下面的循环运行脚本。我首先将当前日期/时间拉入一个变量,并将其作为字符串保存到数据库中。当循环完成处理后,我会在enad时间内执行相同的操作。最后,我计算它们之间的日期差异以计算持续时间(取决于处理的数据,它可能需要1秒到2小时)。我在数据库中看到的是,当一切都说了和做了时,开始和结束时间是相同的,但持续时间是正确的。这怎么可能 While Not loRS.EOF ldJobStartDT = Now() LogToDashboard lsDa

我对NOW()函数有一个问题。我使用下面的循环运行脚本。我首先将当前日期/时间拉入一个变量,并将其作为字符串保存到数据库中。当循环完成处理后,我会在enad时间内执行相同的操作。最后,我计算它们之间的日期差异以计算持续时间(取决于处理的数据,它可能需要1秒到2小时)。我在数据库中看到的是,当一切都说了和做了时,开始和结束时间是相同的,但持续时间是正确的。这怎么可能

While Not loRS.EOF

   ldJobStartDT = Now()
   LogToDashboard lsDatabaseName, "StartTime", cStr(ldJobStartDT)
   .
   .
   {Do Lots of stuff}
   .
   .
   ldJobEndDT = Now()
   LogToDashboard lsDatabaseName, "EndTime", cStr(ldJobEndDT)

   llJobDuration = DateDiff("s", ldJobStartDT,  ldJobEndDT)
   LogToDashboard lsDatabaseName, "Duration", llJobDuration
Wend

来自帮助。您的代码正在舍入以供显示。看看把它当作替身是否更适合你

日期数据类型

日期变量存储为IEEE 64位(8字节)浮点数,表示从100年1月1日到9999年12月31日的日期和从0:00:00到23:59:59的时间。任何可识别的文字日期值都可以指定给日期变量。日期文字必须用数字符号(#)括起来,例如,1993年1月1日#或1993年1月1日#

日期变量根据计算机识别的短日期格式显示日期。时间根据计算机识别的时间格式(12小时或24小时)显示


当其他数字类型转换为日期时,小数点左侧的值表示日期信息,而小数点右侧的值表示时间。午夜是0,中午是0.5。负整数表示1899年12月30日之前的日期。

您需要检查/发布
LogToDashboard
以确保它不存储当前时间(日志函数通常会这样做)。Now()是易变的,但这不是问题,因为您将严格复制的副本发送到该子系统。Now()获得的舍入值不能对“从1秒到2小时”的持续时间损失负责。我们只需将其打印为CDbl,然后查看它的内容。此外,删除CStr,这是不必要的。您应该使用FormatDateTime(或不执行任何操作)而不是CStr。您的问题是变量名。在VB6和VBScript中,如果变量以ID开头,显然会发生很多事情。实际上,更多的事情正在发生。我删除了Id,开始工作。我把它放回去,它继续工作。