C#对于SQL Server,Datetime2(3)字段的时间部分始终设置为00:00:00:000
我正在尝试使用时间值在sql server中保存日期时间。 表中有两列相关内容: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
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来查看输入的值,没有时间显示日期。