Должен ли я использовать Date или DateTime SqlDbType при добавлении значения DateTime С# для поля SQL SQL Server?

-4

У меня есть таблица с полем типа данных Date. Хотя я ожидал бы только сырую дату в этом поле при введении в нее значения так:

update reportsgenerated
set begindate = '2016-02-01'
where rptgenid = 2;

... на самом деле sems хранит значение времени даты, так как оно представлено в LINQPad как "2/1/2016 12:00:00 AM".

Значение С#, которое я присваиваю параметру при вставке, является типом DateTime (поскольку С# не имеет типа "Дата" -only):

DateTime begDate = // bla

В этом случае следует указать параметр как тип даты, чтобы он соответствовал таблице:

insertRptsGenerated.Parameters.Add("@BeginDate", SqlDbType.Date).Value = begDate;

... или как тип DateTime для соответствия присвоенному типу значения:

insertRptsGenerated.Parameters.Add("@BeginDate", SqlDbType.DateTime).Value = begDate;

?

спросил(а) 2021-01-25T18:28:59+03:00 4 месяца, 2 недели назад
1
Решение
76

.NET уже знает, какой тип в.NET. Вас спрашивают, какой тип использовать на другом конце, следовательно, SqlDb часть SqlDbType ;-). Вы должны соответствовать, насколько это возможно, типу параметра на стороне базы данных.

Полный список сопоставлений приведен на странице MSDN для сопоставлений типов данных SQL Server.

Этот график показывает:

DATE SQL Server ==.NET DateTime == SqlDbType.Date

ответил(а) 2021-01-25T18:28:59+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема