在 SQLite 中选择按日期时间的行

本文关键字:时间 日期 SQLite 选择 | 更新日期: 2023-09-27 18:35:16

我正在尝试使用 sqlite 在 c# 中选择介于开始日期和结束日期之间的行。

我的日期格式如下:

2015-05-16T17:22:04.920+02:00

这应该是SQLite的有效格式(参考: http://www.sqlite.org/lang_datefunc.html)

我正在尝试像这样选择该行:

string CmdString = "SELECT * FROM " + tablename +  "WHERE DATETIME(timekey) >= DATETIME('2015-05-16T17:22:04.920+02:00') AND DATETIME(timekey) <= DATETIME('2015-05-16T17:24:04.920+02:00')";
SQLiteCommand cmd = new SQLiteCommand(CmdString, con);
SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
DataTable MatchDt = new DataTable();
sda.Fill(MatchDt);

我得到的错误是:

SQLiteException: SQL logic error or missing database

我做错了什么?

在 SQLite 中选择按日期时间的行

您在 where:

string CmdString = "SELECT * FROM " + tablename +  " WHERE DATETIME(timekey) >= DATETIME('2015-05-16T17:22:04.920+02:00') AND DATETIME(timekey) <= DATETIME('2015-05-16T17:24:04.920+02:00')";

我建议使用 BETWEEN 运算符:

string CmdString = "SELECT * FROM " + tablename +  " WHERE DATETIME(timekey) BETWEEN DATETIME('2015-05-16T17:22:04.920+02:00') AND DATETIME('2015-05-16T17:24:04.920+02:00')";