为Date SQL Server字段添加DateTime C#值时,我应该使用Date还是DateTime SqlDbT



我有一个带有Date数据类型字段的表。尽管我希望在该字段中插入值时只显示原始日期,如下所示:

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

它实际上意味着存储一个日期-时间值,因为它在LINQPad中表示为"2016年2月1日12:00:00 AM"。

当插入时,我分配给参数的C#值是DateTime类型(因为C#没有"Date"-only类型):

DateTime begDate = // bla

在这种情况下,我是否应该将参数指定为Date类型,以匹配表:

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

或作为DateTime类型,以匹配指定值的类型:

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

.NET已经知道它在.NET中是什么类型。有人问你在另一端使用什么类型,因此SqlDbType;-的SqlDb部分。您应该尽可能地匹配数据库端的参数类型。

有关映射的完整列表,请参阅SQL Server数据类型映射的MSDN页面。

该图表显示:

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

相关内容

最新更新