SQL не экономит время DateTime через EF

1

Я использую EF, чтобы сохранить дату.

Дата сохраняется в базе данных, но не время. Я использую тип date. Однако поле SSMS (2012 Express) показывает только dd/MM/yyyy (нет времени)

Читая его, он читает что-то вроде 26/07/2014 00:00:00

Я предполагаю, что он показывает 00:00:00, потому что именно так его спасают (несмотря на то, что он не отображается).

Чтобы сохранить запись, я просто присваиваю DateTime своей собственности.

myEfModel.Date = DateTime.Now;

Я также попытался (чтобы количество цифр не путало SQL при сохранении)

var timeNow = DateTime.Now;
timeNow.AddMilliseconds(-timeNow.Millisecond);
myEfModel.Date LastUsed = timeNow;

Поиски на SO показывают, что большинство людей утверждают, что they have no problems saving DateTime.Now via EF

Почему бы не сохранить время?

Теги:
datetime
entity-framework

1 ответ

7
Лучший ответ

Тип данных DATE в SQL Server 2012 специально сохраняет только дату (нет времени) - это функция, а не ошибка... (тип данных DATE был введен в SQL Server 2008 специально для использования, когда вы заботитесь только о дате, например "дата найма" или подобные вещи, когда часть времени обычно просто мешает вам).

Подробнее см. Документацию по дате и времени MSDN в SQL Serer Books Online для получения более подробной информации....

Если вам понадобится время, также используйте DATETIME2(n) в своей таблице базы данных (где n может иметь значение от 0 до 7 и определяет, сколько дробных секундных запятых вам необходимо; 0 = точность ко второй, 7 = точность до 100 нс)

  • 0
    Это много часов работы только для неправильного типа ??? О, Боже!! Спасибо
  • 2
    @DaveRook: если этот ответ помог вам решить вашу проблему, примите этот ответ . Это покажет вашу признательность за людей, которые провели свое время, чтобы помочь вам .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню