"TIMESTAMP (6) LOCAL TIME ZONE"유형의 열에 날짜를 저장하는 Oracle 11.2.0.2.0 데이터베이스에서 실행되는 .Net 응용 프로그램을 작성 중입니다. 열에 저장된 날짜가 DST 내에 있으면 Oracle.ManagedDataAccess 라이브러리를 사용할 때 날짜가 잘못 읽혀집니다. 항상 날짜를 정확하게 기록/업데이트하는 것처럼 보입니다. 또한 Oracle.DataAccess 라이브러리를 사용할 때 항상 날짜를 올바르게 처리합니다.Oracle.ManagedDataAccess가 DST 날짜를 잘못 읽음
예를 들어, 'America/New_York'시간대와 08/01/2014 12:00:00의 시간대를 사용하고 있습니다. 여기에 잘못 날짜 읽는 코드 조각입니다 : 열이 값 2014년 8월 1일 12시 0분 0초으로 업데이트 될 때
IDbConnection cxn = new Oracle.ManagedDataAccess.Client.OracleConnection(ConnStr);
// Using the following library works correctly:
// IDbConnection cxn = new Oracle.DataAccess.Client.OracleConnection(ConnStr);
cxn.Open();
var cmd = cxn.CreateCommand();
cmd.CommandText = "alter session set time_zone='America/New_York'";
cmd.ExecuteNonQuery();
cmd.CommandText = "SELECT TEST_DATE FROM TEST_TABLE WHERE ROWNUM=1";
return (DateTime)cmd.ExecuteScalar();
는, 그것은 2014년 8월 1일 11시과 같이한다 : 00. DST에 속하지 않는 날짜 (예 : 12/01/2014 12:00:00)를 사용하면 날짜를 올바르게 읽습니다. 이것에 대한 아이디어가 있습니까? 나는 모든 것을 조사해 왔지만이 문제에 대한 어떠한 문서도 찾지 못했습니다. Oracle.DataAccess로 다시 전환해야하지만이를 피하기를 원했습니다. 미리 감사드립니다!