2009-05-28 32 views
2

我需要在.Net 3.0中以毫秒開始工作。數據將從Oracle數據庫返回,如果我理解正確,Oracle只能將使用毫秒的日期存儲爲TimeStamp。看起來,.Net中的Date類型可以處理毫秒,但是當我試圖從Oracle存儲過程中檢索Timestamps時,我遇到了一個令人討厭的錯誤。 .Net是否可以處理Oracle時間戳數據類型,還是需要將它作爲VarChar恢復並將其轉換爲日期類型?在.Net中檢索Oracle TimeStamp字段的問題

感謝,

戴夫

回答

2

如果您使用ODP.NET,那麼您可以獲得值爲Oracle.DataAccess.Types.OracleTimeStamp。然後,您可以使用Value屬性將其作爲System.DateTime對象返回。

您的代碼將是這個樣子:

Private Function GetTimeStamp() As DateTime 

     Dim timeStamp As DateTime 

     Dim sql As String = "your timestamp query" 

     Using conn As OracleConnection = New OracleConnection("your connection string") 
      Using command As OracleCommand = New OracleCommand(sql, conn) 
       conn.Open() 

       Using dataReader As OracleDataReader = command.ExecuteReader(CommandBehavior.CloseConnection) 
        If dataReader.Read() Then 
         timeStamp = dataReader.GetOracleTimeStamp(0).Value 
        End If 
       End Using 

      End Using 
     End Using 

     Return timeStamp 

    End Function 
0

這將是有益知道是什麼錯誤..

我也有類似的問題,在訪問鏈接Oracle表。它使用自1970年1月1日午夜以來的時間戳(具有分數天)。我只是把字段爲小數,並將其轉換:

場/ 86400 + 25569

然後你可以使用格式()或任何功能,將其轉換爲一個日期字符串。