У меня есть таблица в MS-SQL базы данных, которая содержит даты в колонке, как так:Проблемы преобразования строки в дату
2012-10-31 00:00:00.000
Этот столбец указан как тип «DateTime». Как и в, в студиях управления сервером ms sql, я расширяю таблицу, затем столбцы и вижу Даты (PK, datetime, not null).
Затем в C# я получаю эти даты с инструкцией и назначаю ее переменной, которая заполняет столбец сетки на веб-странице, сделанной w/asp.net. Оператор sql просто получает последнюю запись пользователя.
SqlCommand command = new SqlCommand();
//connection info here
sql2 = "select max(day) as day from users u join days d on d.User_ID = u.id where u.ActiveUser = 1 and u.id = " + Users["ID"].ToString();;
command.CommandText = sql2;
dates["Entry"] = command.ExecuteScalar();
Это заполнит даты в колонке следующим образом:
10/31/2012 12:00:00 AM
Теперь, я понятия не имею, почему она становится преобразованный так. Я выполнял данные во время отладки и менял ее с помощью функции command.ExecuteScalar(). Формат, который я хотел бы иметь:
10/31/2012
без hh/mm/ss AM.
Я не мог заставить ANY DateTime конвертировать/разбор/форматирование работать правильно. Я провел четыре дня на этом. Я задал аналогичный вопрос здесь: Converting date to proper format, пробовал все разные предложения.
Что я делаю в то же время является:
string dt = command.ExecuteScalar().ToString();
dt = dt.Substring(0, dt.IndexOf(" ") + 1);
dates["Entry"] = dt;
Что избавляется от всего текста после пробела в строке даты, который был возвращен. Это было бы хорошо, за исключением того, что я хотел сравнить эти даты, которые я получаю, поэтому мне нужны они в DateTime. Попытка конвертировать эти строки в DateTime просто не сработает.
Edit: Определения и типы -
DataRow dates;
//for loop here going through for each user
dates = _dtuserhours.NewRow(); // _dtuserhours is a DataTable
//Sql statements here
_dtuserhours = new DataTable("newtable");
DataColumn column;
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "Entry";
_dtUserHours.Columns.Add(column);
Вы пытались использовать дату в качестве типа данных столбца вместо даты и времени? –
Хорошее предложение, но я ничего не могу изменить в базе данных. Мне разрешено получать от него все, чтобы читать, но ничего не менять. – pfinferno