C#对于SQL Server,Datetime2(3)字段的时间部分始终设置为00:00:00:000

C#对于SQL Server,Datetime2(3)字段的时间部分始终设置为00:00:00:000,c#,sql-server,C#,Sql Server,我正在尝试使用时间值在sql server中保存日期时间。 表中有两列相关内容: startDate datetime2(3) null startTime time(0) null 下面是插入前的记录处理。数据变量是从电子表格导入的值列表: DateTime dtest; DateTime dtimetest; if (DateTime.TryParse(data.startDate, out dtest)) { entity.startDate = dtest; if (DateT

我正在尝试使用时间值在sql server中保存日期时间。 表中有两列相关内容:

startDate datetime2(3) null
startTime time(0) null
下面是插入前的记录处理。数据变量是从电子表格导入的值列表:

DateTime dtest;
DateTime dtimetest;
if (DateTime.TryParse(data.startDate, out dtest))
{
  entity.startDate = dtest;
  if (DateTime.TryParse(data.startTime, out dtimetest))
  {
    TimeSpan ts = new TimeSpan(dtimetest.Hour, dtimetest.Minute, dtimetest.Second);
    entity.startDate = dtest.Date + ts;
    entity.startTime = ts;
  }   
}
我的目标是在startDate列中存储正确的时间,这样就可以去掉startTime列。 上述方法不起作用。结果如下:

startDate                 startTime
2021-04-17 00:00:00.000   18:09:00
2024-10-01 00:00:00.000   09:09:00
2021-04-03 00:00:00.000   04:09:00
2023-09-01 00:00:00.000   21:09:00
2022-12-30 00:00:00.000   16:09:00
2023-12-30 00:00:00.000   21:09:00
2022-06-03 00:00:00.000   22:09:00
2023-04-21 00:00:00.000   08:09:00
2021-01-19 00:00:00.000   02:09:00
2024-10-13 00:00:00.000   21:09:00
为什么startDate列中没有设置时间?可能是数据库设置吗?
还值得一提的是,在开发环境中运行时,时间确实设置正确。一旦在服务器上创建并安装了一个发行版,我注意到没有设置时间。

什么是
实体
?如何配置属性?如果在DbContext配置中使用了
date
作为类型,或者如果属性的访问方法修剪了时间部分,则只能获取日期。或者您可能没有存储正确的对象。不管是什么,问题在于代码中您是对的,dbcontext中的类型是date。在我发布这篇文章之后,我使用profiler来查看输入的值,没有时间显示日期。