从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语句的时间戳与稍后插入数据时使用的时间戳完全相同,所以这可能是问题所在?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)