вставка Datetime в SQLCE с миллисекундами C # - PullRequest
1 голос
/ 13 сентября 2010

У меня есть строка datetime в этом формате "дд-мм-гггг ЧЧ: мм: сс.ффф"

вроде так ..

DateTime mydate = Convert.ToDateTime("13-09-2010 02:30:14.905"); 
 result.SetValue(1, mydate);

// Я получаю ошибкуговоря 'String не был распознан как действительный DateTime'

, если я делаю это таким образом

DateTime mydate = DateTime.ParseExact("13-09-2010 02:30:14.905", "dd-MM-yyyy HH:mm:ss.fff", CultureInfo.CurrentCulture);
 result.SetValue(1, mydate);

, он работает нормально, но форматирует его без миллисекунд.

я простонужен объект datetime для хранения моего отформатированного времени, чтобы я мог его вставить.

1 Ответ

4 голосов
/ 13 сентября 2010

DateTime не содержит «отформатированное время» - оно просто содержит время.Это похоже на то, что int не содержит «шестнадцатеричное значение» или «десятичное значение» - оно просто содержит целое число.

Ваша вторая версия почти наверняка анализирует все данные правильно - распечатайте ее, чтобы проверить- так что я подозреваю, что именно взаимодействие с базой данных вызывает проблемы.Конечно, вы можете изолировать синтаксический анализ от взаимодействия с базой данных, явно создав значение DateTime для тестовой программы.

Вы должны знать, что в соответствии с SQL Server CE 3.5 документами тип datetime в SQL Server CE поддерживает только гранулярность в одну сотую доли секунды, т.е. чуть более 3 мс.Если вам нужно значение точное миллисекунды, вы можете рассмотреть альтернативное представление (например, дату и время с точностью до секунды и отдельное целочисленное поле для миллисекунд.)

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