Не хранит ли SqlDbType.DateTime секунды?
-
21-08-2019 - |
Вопрос
using System.Data;
using System.Data.SqlClient;
Я использую SqlCommand cmd.Parameters
из SqlDbType.DateTime
чтобы создать запись в базе данных.
Секунды не сохраняются в базе данных.Поле в базе данных имеет тип datetime.
Нужно ли мне делать что-то особенное, чтобы сэкономить секунды, или SqlDbType.DateTime
не делать этого?
Решение
SqlDbType.DateTime
сопоставляет с SQL-файлами DATETIME
тип данных с точностью до 3,33 миллисекунды.Это звучит так, как будто вы, возможно, вкладываете свои ценности в SMALLDATETIME
поле в SQL server, которое является точным только с точностью до минуты. SqlDbType.DateTime
параметр был бы правильным выбором для использования с обоими DATETIME
и SMALLDATETIME
.
Другие советы
SQL Server DateTime хранит время с точностью до миллисекунды (не совсем верно, оно округляется до .003 .007 и т.д.)
Однако Smalldatetime сохраняет даты таким образом, что секунды всегда равны :00.Вероятно, вы использовали smalldatetime .