2014-07-24 4 views
-1

SQL Server 데이터베이스의 endDate 열을 highDate이라는 C#의 저장된 변수와 비교하려고합니다. SQL Server 데이터베이스에서 dateTime을 가져 오는 중

DateTime highDate = new DateTime(2999, 1, 1); 

SqlConnection myConnection = new SqlConnection("My connection string"); 
SqlCommand myCommand = new SqlCommand("My query including endDate_TS", myConnection); 

myCommand.Connection.Open(); 

SqlDataReader myReader = myCommand.ExecuteReader(); 

while (myReader.Read()) 
{ 
     DateTime endDate = new DateTime(myReader["endDate_TS"]); //something is wrong here 
} 

if (endDate > highDate) 
{ 
    //do something 
} 

어떻게 제대로 나는 SQL Server 데이터베이스에서 endDate_TS을 수용하기 위해 만든 endDate 변수를 포맷합니까? endDate_TS은 SQL Server DATETIME 데이터 유형입니다.

+2

보기 여기 : 당신이 무엇을 http://stackoverflow.com/questions/16634940/how-to-convert-a-sql-date-to-a-datetime – W92

+1

의미합니까 " 뭔가 잘못되었습니다. ", 예외가 발생합니까, 열이 null인지, DB와 비교해보십시오. Null.Value' 변환합니다. – Habib

답변

2

DateTime에는 여러 개의 개체가 있지만 어느 것도 대상을 갖지 않습니다. 그러나 myReader["endDate_TS"]은 객체를 반환합니다. 당신이 그러나 constructor that takes a long:

int indexOfEndDateTsColumn = myReader.GetOrdinal("endDate_TS"); 
DateTime endDate = new DateTime(myReader.GetInt64(indexOfEndDateTsColumn)); 

을 사용할 수 있습니다 (이 _TS이 시간 범위를 의미하는 경우로 보이는) 틱의 수는 실제로 있다면, 괄호의 마지막 문장은 그 다음, 실제로 데이터베이스에 datetime 당신이 할 수 있다고 제안 직접 DataReader.GetDateTime를 사용

DateTime endDate = myReader.GetDateTime(indexOfEndDateTsColumn); 
+0

효과가있었습니다! 도와 줘서 고마워. 고마워. – jShoop

관련 문제