我有一个使用SQLite数据库的程序,它需要在到期日期低于当前时间后删除一行。我正在尝试与之交互的表格中有一个字段,其中包含ID,名称,到期日期,入口日期,客户代码,每个客户都有不同的到期日期,并使用以下方式检索此数据:
DateTime.Now.AddDays(numberofdaysstaying)
并使用以下方法检索当前时间:
DateTime.Now
我的sql代码在另一个名为sqlManager的类中执行,我用来自动删除的函数是:
public void Autodelete()
{
using (SQLiteConnection sqlConn = new SQLiteConnection("Data Source=projecto.sqlite;Version=3;"))
{
sqlConn.Open();
//create command
SQLiteCommand sqlCommand = new SQLiteCommand("DELETE FROM cliente WHERE expirationDate < @td", sqlConn);
sqlCommand.Parameters.AddWithValue(Datetime.Now));
sqlCommand.ExecuteNonQuery();
}
这并没有真正做到,没有例外或类似的东西......它只是没有删除一件事。关于如何使这项工作的任何提示?
答案 0 :(得分:1)
我会使用date(expirationDate,unixepoch)转换为unix时间,然后将其与unix时间中的时间进行比较。这应该更容易,因为unix时间是一个整数。这是自1970-01-01以来的秒数。我在下面链接了另一个问题,该问题解答了如何在C#中获得unix时间。