为什么 SQL Server DateTime 显示上午,但不显示下午?

为什么 SQL Server DateTime 显示上午,但不显示下午?

参见下图,UpdateDate 列显示包含“AM”文本的日期时间,但 CreateDate 显示日期时间,不显示文本“PM”。

这两列是自动生成的,数据类型为 DateTime。更新日期为:2010 年 8 月 19 日上午 10:27:20 创建日期为:2010 年 8 月 13 日下午 1:59:00 [但未显示 PM]

看图片:

1

如果没有显示 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,我已经放弃它一段时间了,因为上个月它充满了错误。

相关内容