2011-04-10 2 views
2

데이터 형식이 "yyyy-MM-dd"인 SQL Server 2008의 데이터 형식이 DATE인데 C#을 통해 데이터베이스에서 날짜를 선택하고 문자열로 변환하면 시간 부분도 같이 표시됩니다 .SQL Server 2008 Returing Time의 DATE 데이터 유형!

"2012-04-21 12:00:00" 

여기에 데이터베이스에 시간을 저장하지 않은 것은 무엇입니까?

string sql = @"select card_no, amount, csc,expdate " + 
       "from user_account_card " + 
       "where user_id = '" + loginsession.Auser + "';"; 

SqlCommand cmd = new SqlCommand(sql, con); 
SqlDataReader red = cmd.ExecuteReader(); 

while (red.Read()) 
{ 
    loginsession.Cardno = Convert.ToString(red["card_no"]); 
    loginsession.Cardamount = Convert.ToString(red["amount"]); 
    loginsession.Csc=Convert.ToString(red["csc"]); 
    loginsession.Expdate = Convert.ToString(red["expdate"]);//date part 
    break; 
} 

MessageBox.Show("database value from database--" +loginsession.Expdate); 

시간이 시간없이 저장하는 모든 의도와 목적을 위해 다음 자정으로 표시되는 경우

답변

3

을 무엇을 도와주세요.

SQL에 시간을 포함하지 않는 데이터 형식이 있지만 테이블을 다시 디자인해야합니다. 당신이 필요/원하는지 확실하지 않습니다. 이 이후

((Date)red["expdate"]).ToString(); 

는 날짜 데이터 형식으로 변환됩니다 아닌 날짜 시간 데이터는 단지 반환 된 문자열에서 날짜 부분을 볼 수 입력 :

또한이 시도 할 수 있습니다.

+0

.NET에서 오히려 문제 (http://en.wiktionary.org/wiki/for_all_intents_and_purposes) –

+1

-

그래서 정말 여기에 SQL 서버의 문제가 아니다 @ 마틴 - 젠장, 내 영어 교정 ​​중이야? 그렇게 어려운 대상이있는 것처럼 보입니다. (팁 주셔서 감사합니다) : D – Hogan

+0

((DateTime) red [ "expdate"]이어야합니다.) ToShortDateString(); – Magnus

2

Convert.ToString가하는 DATE 열의 단지 날짜를 저장합니다에만 "datetime"

+0

- 정보를위한 고마워요. 이제 저는 그걸 다른 어떤 얇은 것으로 변환 할 것입니다. –

2

SQL 서버 2008에 "날짜"과부하가 없습니다 - 당신은 쉽게 SQL Server 관리 Studio에서 다음을 확인 할 수 있습니다. 또한 : DATE 열은 특정 문자열 형식으로 날짜를 저장하지 않습니다. 바로 그 모양입니다. 날짜는 날짜입니다. 날짜로 저장되며 "형식"자체가 없습니다.

그러나 .NET에는 "날짜 전용"데이터 형식이 없으므로 DATE 열을 SQL Server에서 읽으면 DATE 및 TIME이 포함 된 .NET의 DateTime 변수로 끝납니다. 그러나 [ "모든 의도와 목적을 위해"]