2013-02-27 52 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美國/山峯