我在 SQL Server 2008 中有一个数据类型 DATE
的列,它仅以“yyyy-MM-dd”格式存储日期,但是当我通过 C# 从数据库中选择日期并将其转换为字符串时, 显示时间部分也一样。
"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);
请帮我做一下
最佳答案
如果时间显示为午夜,那么就所有意图和目的而言,它是在没有时间的情况下存储它。
SQL有日期数据类型不包含时间,需要重新设计表。不确定您是否需要/想要这样做。
你也可以试试这个:
((Date)red["expdate"]).ToString();
由于这将转换为 Date 数据类型而不是 DateTime 数据类型,因此您应该只在返回的字符串中看到日期部分。
关于c# - SQL Server 2008 回归时间的 DATE 数据类型!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5611304/