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)

Другие вопросы по тегам