首页 > 解决方案 > FormatDateTime(Now(),vbShortDate) 在不同的设备中给出不同的日期格式。

问题描述

我在一个经典的 asp 项目中工作,我从数据库中选择一个 SQL 查询。该查询在我自己的笔记本电脑上运行良好,并且该查询的日期格式为“11/14/2018”,但它在办公系统中给出了上述错误,当我在 SSMS 中检查查询时,它生成的日期格式为“14” -11-2018'。我尝试更改不同的 VB 日期格式,但结果是相同的。

这是查询:

 sql="select count(*) as total from hc_query a, hc_breakup b where a.querytype='hotel' and a.qdate='" & FormatDateTime(Now(),vbShortDate) & "' and a.t_id=b.pnrno and b.bookstatus='half'" '

请给一些建议。谢谢

标签: sql-servervbscript

解决方案


问题不在于代码,而在于关于函数输出的假设。FormatDateTime的文档说明了该NamedFormat参数:

vbShortDate : 2

使用计算机区域设置中指定的短日期格式显示日期。

也就是说,输出格式取决于运行代码的计算机的本地配置。根据区域设置,两台不同的计算机可以生成不同的输出。

如果您需要一致的输出来处理存储为数据库字段中的字符串的日期,那么您将需要编写自己的函数来确保一致性。


推荐阅读