2009-05-28 3 views
2

.Net 3.0에서 밀리 초 단위로 작업해야합니다. 데이터는 오라클 데이터베이스에서 반환되며, 오라클은 밀리 초를 사용하는 날짜 만 TimeStamp로 저장할 수 있다고 올바르게 이해합니다. .Net의 Date 유형은 밀리 초를 처리 할 수 ​​있지만 과거에 Oracle 저장 프로 시저에서 Timestamps를 검색하려고 시도했을 때 불쾌한 오류가 발생했습니다. .NET에서 Oracle 타임 스탬프 데이터 형식을 처리 할 수 ​​있습니까? 아니면 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 일 자정 이래로 일 (분수 일) 인 시간 소인을 사용합니다. 난 그냥 진수로 필드를 가져오고 변환 :

필드/86400 + 25569

그런 다음 당신이 사용할 수있는 형식() 또는 어떤 기능을 날짜 문자열로 변환 할 수 있습니다.