gpt4 book ai didi

c# - Sql Server 中的 DateTime 插入更改值

转载 作者:太空狗 更新时间:2023-10-29 20:04:47 25 4
gpt4 key购买 nike

当我插入这些值时

09/30/2013 05:04:56.599 
09/30/2013 05:04:56.599
09/30/2013 05:04:56.599
09/30/2013 05:04:57.082

在SqlServer数据库中,毫秒值的变化很奇怪

2013-09-30 05:04:56.600 
2013-09-30 05:04:56.600
2013-09-30 05:04:56.600
2013-09-30 05:04:57.083

怎么了?

编辑:相关代码:

        com = new SqlCommand();
com.Connection = con;
com.CommandText = @"INSERT INTO [AuthSourceTimings]
([FileName]
,[JobID]
,[JobCreationTime]
,[JobSendTime]
,[JobAckTime]
,[JobDoneTime])
VALUES
(@FileName
,@JobID
,@JobCreationTime
,@JobSendTime
,@JobAckTime
,@JobDoneTime)
";

com.Parameters.AddWithValue("@FileName", fileName);
com.Parameters.AddWithValue("@JobID", t.JobID);

com.Parameters.AddWithValue("@JobCreationTime", t.JobCreationTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobCreationTime);
com.Parameters.AddWithValue("@JobSendTime", t.JobSendTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobSendTime);
com.Parameters.AddWithValue("@JobAckTime", t.JobAcknowledgementTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobAcknowledgementTime);
com.Parameters.AddWithValue("@JobDoneTime", t.JobCompletionTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobCompletionTime);

com.ExecuteNonQuery();

最佳答案

毫秒在日期时间格式中仅以大约 1/300 秒的精度存储,因此这就是不准确性的来源。

您可以查看此答案:Why is SQL Server losing a millisecond?

要获得更高的精度(100 纳秒),您可以使用 SQL Server 2008 中引入的 DATETIME2。您可以在此处获取更多信息:

关于c# - Sql Server 中的 DateTime 插入更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com