【发布时间】:2016-11-01 15:25:09
【问题描述】:
好的,所以,这是一个奇怪的问题,这导致我失去了我剩下的一点头发。
我们有一些代码使用 ADO 从 SQL Server 中提取数据。该代码已经存在 7 或 8 年了,并且有一段时间没有被触及。
在函数中,我们检查返回字段的类型以进行某些转换,我们有这样的:
case ( fieldType = ADDBTIMESTAMP$ )
* // A date/time stamp (yyyymmddhhmmss plus a fraction
* // in billionths)
* // Looksd like we're just getting MM/DD/YYYY
* // ooh no sometimes we get 6/25/2010 11:35:00 AM
基本上,这意味着当字段的类型为 ADDBTIMESTAMP(或 135)时,无论出于何种原因,返回的日期有时为 MM/DD/YYYY,有时带时间戳,有时不带时间戳。
今天早上,所有日期字段现在都返回值 YYYY-MM-DD(包括破折号)。
我没有更改此代码。网络上的人发誓他们没有更新或修改过 SQL Server。我的工作站是 Win10,所以谁知道它有什么变化,但我没有看到过去几天有任何更新的迹象。
显然,有些事情发生了变化,考虑到我们现在正在以正确的格式获取数据,但是对于我的生活,我看不出会发生什么。
我们将不胜感激任何帮助、提示或精神病学建议。
谢谢。
【问题讨论】:
-
我们没有看到您的代码或机器或 sql 服务器,我们不知道日期是否以字符串形式出现,但这一切都让我思考;排序规则已更改,或者更可能是生成日期的机器更改了“文化”设置。
-
+1 @RicardoC。除了这些要点;你能提供数据库中的样本记录吗? SQL Server 中使用什么数据类型?
-
他们终于允许我访问其他一些机器。原来我的工作站是唯一有问题的工作站。他们正在运行各种操作系统。没有两个工作站具有相同的操作系统或版本或任何东西。他们决定一次卸载我机器上的更新,直到问题消失。我原以为更新我的工作站以匹配具有更高版本的 Win10 的机器会更容易,但我知道什么?不过感谢您的建议。
-
感谢您的修改,@Marc_s。我刚刚剪切并粘贴了代码中的评论。我该如何关闭或回答这个问题,或者只是让人们忽略这个问题,因为它变成了工作站配置问题。谢谢。
标签: sql-server ado