丢失数据集中的时区

时间:2013-02-27 19:59:05

标签: asp.net oracle11g

我的数据库表包含一些TIMESTAMP WITH TIME ZONE字段。我从这个表中选择记录并将它们放在数据集中。当我尝试访问日期/时间字段时,我似乎丢失了时区信息。 我尝试在adapter.Fill()之前添加以下内容:

adapter.ReturnProviderSpecificTypes = true;

但是这会导致所有字段都使用Oracle数据类型,而不仅仅是日期/时间字段。例如,我不能再转换.ToInt32(dr [“SomeIntField”])因为它现在是OracleDecimal。 有什么方法可以将我的表中的时区信息转换为数据集,而不会弄乱所有其他字段吗?

1 个答案:

答案 0 :(得分:0)

我用以下内容替换了ReturnProviderSpecificTypes:

adapter.SafeMapping.Add("*", typeof(string));
adapter.Fill(ds);

这会将数据转换为字符串类型(只有选项是sting和byte [])。它似乎保留了我可以使用的时区格式:

dtzTime = new OracleTimeStampTZ(dr["MY_DBTable_Column_with_TZ"].ToString());

我将日期存储在USA / EASTERN,USA / PACIFIC等时区,所以上面的返回: 26-FEB-2013 14:49:46.169030000 US / MOUNTAIN