2013-02-27 55 views
0

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

adapter.ReturnProviderSpecificTypes = true; 

但是,这将导致所有领域使用Oracle数据类型,而不仅仅是日期/时间字段是。例如,我不能再Convert.ToInt32(dr [“SomeIntField”]),因为它现在是OracleDecimal。 有没有什么办法让我的表格中的时区信息变成数据集而不会搞乱其他所有的字段?

回答

0

我替换为以下的ReturnProviderSpecificTypes:

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

这将数据串类型(只选项刺痛和字节[])转换。这似乎让我的时区的格式,我可以访问使用:

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

我存储我的USA /东欧,美国/太平洋等日期的时区,所以上面的回报: 26-FEB-2013 14 :49:46.169030000美国/山峰