Я использую 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
Почему бы не сохранить время?
Тип данных DATE
в SQL Server 2012 специально сохраняет только дату (нет времени) - это функция, а не ошибка... (тип данных DATE
был введен в SQL Server 2008 специально для использования, когда вы заботитесь только о дате, например "дата найма" или подобные вещи, когда часть времени обычно просто мешает вам).
Подробнее см. Документацию по дате и времени MSDN в SQL Serer Books Online для получения более подробной информации....
Если вам понадобится время, также используйте DATETIME2(n)
в своей таблице базы данных (где n
может иметь значение от 0 до 7 и определяет, сколько дробных секундных запятых вам необходимо; 0 = точность ко второй, 7 = точность до 100 нс)