sql-server - 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'" '
请给一些建议。谢谢
解决方案
问题不在于代码,而在于关于函数输出的假设。FormatDateTime的文档说明了该NamedFormat
参数:
vbShortDate : 2
使用计算机区域设置中指定的短日期格式显示日期。
也就是说,输出格式取决于运行代码的计算机的本地配置。根据区域设置,两台不同的计算机可以生成不同的输出。
如果您需要一致的输出来处理存储为数据库字段中的字符串的日期,那么您将需要编写自己的函数来确保一致性。
推荐阅读
- java - 如何获取在 Java 8 上编译的 Eclipse 库
- java - log4j2 RollingFile 不使用 filePattern 的日志消息中的日期,而是使用当前日期
- javascript - Unlayer 电子邮件编辑器 - 如何禁用退出查看模式的功能
- certificate - 有没有办法检查证书是客户端证书还是服务器证书?
- visual-studio - 我在 CMD + S 上的样式更改而无需修改
- json - 如何使用 swift 在 Xcode 中传递 JSON 数组视图控制器
- python - 从 PiCam 保存的视频的快进问题
- c# - 从 ASP.NET Core Web API 应用程序访问 OAuth2 端点
- netsuite - 如何使用 SuiteQL 获取 NetSuite 公司的名称?
- amazon-ec2 - 安全组的 AWS IAM 策略不起作用