1

我在两台不同的 Windows 7 机器上运行相同的 Delphi 2007 代码,并在远程服务器上访问相同的 SQL 服务器数据库。在一台机器上,数据库中的日期以 2013-01-25 00:00:00.000 格式读取,这会导致应用程序在尝试将此日期转换为 DateTime 时崩溃。在另一台机器上,以 2013 年 1 月 25 日的格式读取日期,该日期被正确转换为 DateTime,没有任何问题。是什么导致了这种差异?(我验证了两台机器上的控制面板“区域和语言”设置是相同的)。数据库中的日期存储为 datetime2。

4

1 回答 1

2

在一台机器上,以 2013-01-25 00:00:00.000 格式读取数据库中的日期,这会导致应用程序在尝试将此日期转换为 DateTime 时崩溃。在另一台机器上,以 2013 年 1 月 25 日的格式读取日期,该日期被正确转换为 DateTime,没有任何问题

我对 Delphi 一无所知,但在 SQL Server 方面:

日期是 aDate并且没有格式。如果您的列是Date数据类型,则在转换为DateTime.

我怀疑您可能将日期存储在字符串类型字段中,在这种情况下,最好使用特定于文化的ISO 或 ISO8601 格式,然后再转换为DateTime.

于 2013-10-14T19:03:08.227 回答