ДАТА Тип данных SQL Server 2008 время получения! - PullRequest
2 голосов
/ 10 апреля 2011

У меня есть столбец типа данных DATE в SQL Server 2008, который хранит только дату в формате "гггг-ММ-дд", но когда я выбираю дату из базы данных через 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);

Пожалуйста, помогите мне, что делать

Ответы [ 3 ]

3 голосов
/ 10 апреля 2011

Если время отображается как полночь, то для всех целей и задач оно хранит его без времени.

В SQL есть тип данных даты, который не включает время, но вам необходимо изменить структуру таблицы.,Не уверен, если вам нужно / хотите сделать это.

Вы также можете попробовать это:

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

Так как это преобразует в тип данных Date, а не в тип данных DateTime, вы должны простосм часть даты в возвращенной строке.

2 голосов
/ 10 апреля 2011

SQL Server 2008 будет хранить только дату в столбце DATE - это легко проверить в SQL Server Management Studio.Кроме того: столбец DATE не хранит дату в определенном формате строки - это только то, как вы ее видите.Дата - это дата, дата - она ​​хранится как дата и сама по себе не имеет никакого «формата».

Однако .NET не имеет тип данных «только для даты», поэтому чтениеСтолбец DATE из SQL Server заканчивается переменной DateTime в .NET, которая содержит ДАТУ и ВРЕМЯ.

Так что здесь на самом деле проблема не в SQL Server, а скорее в .NET

2 голосов
/ 10 апреля 2011

Convert.ToString не имеет перегрузки "date", только "datetime"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...