2

我这里有一个完全在 GMT 上运行的数据库。但是,客户端计算机可能在许多不同的时区(包括 BST)上运行。当您使用 SqlConnection 拉回数据时,它将转换日期时间值,例如

2008 年 8 月 19 日

变成

2008 年 8 月 18 日 23:00:00。

我的问题是,有没有办法指定您不希望发生这种翻译的连接?

4

2 回答 2

4

您如何访问数据?

从 web 服务传递 DataSets / DataTables 时,我遇到了同样的问题。

我通过在 DataTable 中设置 DataColumn.DateTimeMode 属性来解决它

returnedDataTable.Columns("ColumnName").DateTimeMode = DataSetDateTime.Unspecified

之后就好了。

不知道这是否会有所帮助。

于 2008-11-05T17:33:10.377 回答
1

仅在数据库中保留 UTC 值。在从数据库存储/检索时,让您的业务对象始终转换为/从 UTC/本地时间转换,以便用户可以查看和输入本地时间值。您可以通过在 BO 的 getter/setter 方法中实现转换来做到这一点,以便私有变量采用 UTC,因此当它存储回数据库时,它已经是您需要的形式。

于 2008-11-05T17:08:12.847 回答