Asp.net 数据集中丢失时区
我有一个数据库表,其中包含几个带有时区字段的时间戳。我从这个表中选择记录并将它们放入数据集中。当我试图访问日期/时间字段时,我似乎丢失了时区信息。 我尝试在adapter.Fill()之前添加以下内容: 但这会导致所有字段都使用Oracle数据类型,而不仅仅是日期/时间字段。例如,我不能再将.ToInt32(dr[“SomeIntField”])转换为OracleDecimal,因为它现在是OracleDecimal。Asp.net 数据集中丢失时区,asp.net,oracle11g,Asp.net,Oracle11g,我有一个数据库表,其中包含几个带有时区字段的时间戳。我从这个表中选择记录并将它们放入数据集中。当我试图访问日期/时间字段时,我似乎丢失了时区信息。 我尝试在adapter.Fill()之前添加以下内容: 但这会导致所有字段都使用Oracle数据类型,而不仅仅是日期/时间字段。例如,我不能再将.ToInt32(dr[“SomeIntField”])转换为OracleDecimal,因为它现在是OracleDecimal。 是否有任何方法可以将时区信息从我的表中获取到数据集中,而不会弄乱所有其他字段
是否有任何方法可以将时区信息从我的表中获取到数据集中,而不会弄乱所有其他字段?我将ReturnProviderSpecificTypes替换为以下内容:
adapter.SafeMapping.Add("*", typeof(string));
adapter.Fill(ds);
这会将数据转换为字符串类型(仅选项为sting和byte[])。它似乎保留了我的时区格式,我可以使用:
dtzTime = new OracleTimeStampTZ(dr["MY_DBTable_Column_with_TZ"].ToString());
我将日期存储在美国/东部、美国/太平洋等时区,因此上述返回:
2013年2月26日14:49:46.169030000美元/山区
dtzTime = new OracleTimeStampTZ(dr["MY_DBTable_Column_with_TZ"].ToString());