从SQL Server表中删除DateTimeOffset大于或等于C#DateTime的表

我有一个包含数据的SQL Server表,其中每一行都有一个名称和DateTimeOffset字段。 现在,我要删除表中的所有数据,其中DateTimeOffset字段包含的值大于我在C#应用程序中拥有的DateTime(UTC)对象的值,以便以后可以插入新数据,而不必在表中重复数据。这是我在C#中尝试执行此操作的示例:

 DateTime timestamp = data.Timestamp.UtcTime; //28.10.2020 15:00:00 UTC

 using (SqlCommand command = new SqlCommand($"DELETE FROM <tablename> WHERE Name = @p_name AND Time >= @p_timestamp",conn))
 {
     command.Parameters.Add(new SqlParameter("p_name",SqlDbType.NVarChar) { Value = "ExampleName" });
     command.Parameters.Add(new SqlParameter("p_timestamp",SqlDbType.DateTimeOffset) { Value = timestamp });
     command.ExecuteNonQuery();
 }

执行此语句后,我仍然可以在表中的“时间”字段为“ 2020-10-28 15:00:00.0000000 +01:00”的行中找到行。为什么?我已经尝试使用SqlDbType.DateTimeSqlDbType.DateTime2代替SqlDbType.DateTimeOffset,但这不能解决问题。将时间戳转换为DateTimeOffset对象也没有区别。我用于此delete语句的时间戳与稍后插入数据时使用的时间戳完全相同,所以这可能是问题所在?

gjshiwoxia 回答:从SQL Server表中删除DateTimeOffset大于或等于C#DateTime的表

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1310554.html

大家都在问