C# 如何防止SqlConnection上的时区转换?

C# 如何防止SqlConnection上的时区转换?,c#,database,timezone,C#,Database,Timezone,我这里有一个完全在GMT上运行的数据库。然而,客户端机器可能在许多不同的时区上运行,包括BST。当您使用SqlConnection拉回数据时,它将转换datetime值,例如 2008年8月19日 变成 2008年8月18日23:00:00 我的问题是,是否有一种方法可以指定您不希望进行此转换的连接?仅在数据库中保留UTC值。在存储/检索数据库时,让您的业务对象始终转换为UTC/本地时间,以便用户可以查看和输入本地时间值。您可以通过在BO的getter/setter方法中实现转换来实现这一点,这

我这里有一个完全在GMT上运行的数据库。然而,客户端机器可能在许多不同的时区上运行,包括BST。当您使用SqlConnection拉回数据时,它将转换datetime值,例如

2008年8月19日

变成

2008年8月18日23:00:00


我的问题是,是否有一种方法可以指定您不希望进行此转换的连接?

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

您如何访问数据

我在从Web服务传递数据集/数据表时也遇到了同样的问题

我通过在DataTable中设置DataColumn.DateTimeMode属性解决了这个问题

returnedDataTable.Columns("ColumnName").DateTimeMode = DataSetDateTime.Unspecified
从那以后就没事了

我不知道这是否有帮助