参见下图,UpdateDate 列显示包含“AM”文本的日期时间,但 CreateDate 显示日期时间,不显示文本“PM”。
这两列是自动生成的,数据类型为 DateTime。更新日期为:2010 年 8 月 19 日上午 10:27:20 创建日期为:2010 年 8 月 13 日下午 1:59:00 [但未显示 PM]
看图片:
如果没有显示 PM,则 C# 代码会将“8/13/2010 1:59:00”理解为“8/13/2010 1:59:00 AM”。
服务器是 Sql Server R2。今天之前总是没问题。就在昨晚,如下图所示。
我认为这是 Sql Server R2 的一个错误。
谁能告诉我为什么,以及如何避免再次发生这种情况?
非常感谢!
答案1
DateTime 不存储 AM 或 PM,它是一个通用的日期和时间,无论如何都会在 C# 中被识别。
如果您需要显示 AM 或 PM,则取决于您如何让 C# 或其他程序呈现输出 - 它不是存储方式的一部分(除非您将其存储为字符串)。此外,如果您不指定如何格式化显示/输出 - 它可以根据服务器区域设置或客户端区域设置进行调整/更改。
如果屏幕截图仅来自 MS SQL 2008 R2 Management Studio,我已经放弃它一段时间了,因为上个月它充满了错误。