我需要在.Net 3.0中以毫秒開始工作。數據將從Oracle數據庫返回,如果我理解正確,Oracle只能將使用毫秒的日期存儲爲TimeStamp。看起來,.Net中的Date類型可以處理毫秒,但是當我試圖從Oracle存儲過程中檢索Timestamps時,我遇到了一個令人討厭的錯誤。 .Net是否可以處理Oracle時間戳數據類型,還是需要將它作爲VarChar恢復並將其轉換爲日期類型?在.Net中檢索Oracle TimeStamp字段的問題
感謝,
戴夫
我需要在.Net 3.0中以毫秒開始工作。數據將從Oracle數據庫返回,如果我理解正確,Oracle只能將使用毫秒的日期存儲爲TimeStamp。看起來,.Net中的Date類型可以處理毫秒,但是當我試圖從Oracle存儲過程中檢索Timestamps時,我遇到了一個令人討厭的錯誤。 .Net是否可以處理Oracle時間戳數據類型,還是需要將它作爲VarChar恢復並將其轉換爲日期類型?在.Net中檢索Oracle TimeStamp字段的問題
感謝,
戴夫
如果您使用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
這將是有益知道是什麼錯誤..
我也有類似的問題,在訪問鏈接Oracle表。它使用自1970年1月1日午夜以來的時間戳(具有分數天)。我只是把字段爲小數,並將其轉換:
場/ 86400 + 25569
然後你可以使用格式()或任何功能,將其轉換爲一個日期字符串。