2009-05-28 5 views
2

.Net 3.0ではミリ秒単位で作業する必要があります。データはOracle Databaseから戻されます。正しく理解すれば、Oracleはミリ秒を使用する日付のみをTimeStampとして格納できます。 .NETのDate型はミリ秒を処理できるように見えますが、過去にOracleストアドプロシージャからTimestampsを取得しようとすると、厄介なエラーに遭遇しました。 Oracleのタイムスタンプのデータ型を.NETで処理できるか、それをVarCharとして戻して日付型にキャストする必要がありますか?私はAccessでのOracleテーブルをリンクして同様の問題があった 問題.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

エラーが何であるかを知って役立つだろう...。 1970年1月1日午後0時からの分数日数のタイムスタンプを使用します。私は小数としてのフィールドを持って、それらを変換:

フィールド/ 86400 + 25569

次にあなたが使用できる形式()または任意の機能を日付文字列に変換します。