我这里有一个完全基于GMT运行的数据库。但是,客户端计算机可以在许多不同的时区(包括BST)上运行。当您使用SqlConnection拉回数据时,它将转换日期时间值,例如
2008年8月19日
变为
2008年8月18日23:00:00。
我的问题是,有没有办法指定您不希望进行此翻译的连接?
答案 0 :(得分:3)
您如何访问数据?
从Web服务传递DataSets / DataTable时遇到了同样的问题。
我通过在DataTable中设置DataColumn.DateTimeMode属性来解决它
returnedDataTable.Columns("ColumnName").DateTimeMode = DataSetDateTime.Unspecified
之后就好了。
不知道这是否有帮助。
答案 1 :(得分:1)
仅保留数据库中的UTC值。在存储/从数据库检索时,您的业务对象始终转换为/从UTC /本地时间转换,以便用户可以查看和输入本地时间值。你可以通过在BO的getter / setter方法中实现转换来实现这一点,这样私有变量就是UTC,因此当它存储回数据库时,它已经是你需要的形式。