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