OleDbDataAdapter UPDATE查询比较日期类型与字符串
本文关键字:类型 字符串 日期 比较 UPDATE 查询 OleDbDataAdapter | 更新日期: 2023-09-27 18:10:03
我有一个正在数据库上做UPDATE
的OleDbDataAdapte
r。在我正在更新的表上,我有一个名为"Temp_date"
的列,它以mm/dd/yyyy
格式保存日期。是否有任何方法我可以比较字符串从表与实际日期(当前日期)?我的目的是,如果表中存储的日期低于当前日期,则删除旧值。非常感谢您的帮助和建议!
OleDbDataAdapter adapter3 = new OleDbDataAdapter();
adapter3.UpdateCommand = conexiuneBD.CreateCommand();
adapter3.UpdateCommand.CommandText = "UPDATE table SET Occupied=No, Temp_date=? WHERE Temp_date<?";
adapter3.UpdateCommand.Parameters.AddWithValue("p1", DBNull.Value);
adapter3.UpdateCommand.Parameters.AddWithValue("p2", current_date);
如何先转换日期并传递常量值进行比较?
OleDbDataAdapter adapter3 = new OleDbDataAdapter();
adapter3.UpdateCommand = conexiuneBD.CreateCommand();
string convertedDate = ConvertDateToAccessFormat(current_date);
adapter3.UpdateCommand.CommandText = "UPDATE table SET Occupied=No, Temp_date=? WHERE Temp_date<" + convertedDate;
adapter3.UpdateCommand.Parameters.AddWithValue("p1", DBNull.Value);
adapter3.UpdateCommand.Parameters.AddWithValue("p2", current_date);
或者你可以把它分成两部分。首先,从数据库中获取Temp_date的当前值,只有当它小于预期的新日期时,才调用更新代码。
或者您可以使用访问字符串到日期的转换:
UPDATE table SET Occupied=No, Temp_date=? WHERE cDate(Format(Temp_date,"yyyy-MM-dd hh:mm:ss")) < ?
顺便说一句,如果Temp_date作为字符串存储,你不需要将其作为字符串发送吗?在这种情况下,您必须转换这两个值,以便将它们作为日期进行比较。像这样的?
UPDATE table SET占用=No, Temp_date=?WHERE cDate(Format(Temp_date,"yyyy-MM-dd hh:mm:ss")) <cDate(格式吗?","yyyy-MM-dd>