C# SqlCeDataReader getValue даты возвращает другой формат для того же запроса
У меня есть следующий код
String sqlQuery = "SELECT * FROM table";
SqlCeDataReader reader = ConectorSQLCE.consultar(rutaArchivo, sqlQuery);
String value = "";
try
{
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
if (reader.GetValue(i) == DBNull.Value)
value += "*";
else
{
value += reader.GetValue(i).ToString();
}
}
}
}
когда reader.GetValue(i)
это datetime
поле, иногда это возвращает 01/01/2014 0:00:00
и другие времена возвращаются 01/01/2014 12:00:00 a.m.
Почему это происходит? Строковое значение используется тогда для хеш-кода, поэтому у меня для одной строки разные хеши.
1 ответ
Не уверен, почему это так, но если поле времени всегда одинаково, почему бы вам просто не преобразовать его в .ShortDateString()
тогда вам не нужно беспокоиться о несоответствиях. Вы также можете преобразовать его на стороне SQL, если вы называете каждый столбец, который вам нужен, по имени и используете convert(varchar,dateField,101)