在 SQLite 中从特定日期检索数据

Retrieve data from a certain date in SQLite

我在根据特定月份从我的 SQLite 数据库中检索数据时遇到问题。我环顾四周,看到有人在 WHERE 子句中使用 strftime,我试过了,但得到的结果好坏参半。无论日期如何,我都在获取数据库中的所有数据,或者我没有得到任何结果,但没有出现错误或异常。我想知道是否有人对此有解决方案?

在我的 table 中,我有一个名为 "Date" 的列,它是文本(我的模型 class 中的字符串),我以 [=25= 的格式保存数据],但在阅读之后我认为这可能是我保存它的格式,因为它导致了问题所以我也尝试了 yyyy-MM-dd 和 dd-MM-yyyy,但它并没有解决问题。

我也尝试了不同的 select 语句来查看是否有帮助。 returns 所有数据,而不仅仅是 1 月份的数据;

var selectStmt = "SELECT * FROM SleepTrackerModel WHERE strftime('%m', '01')";
SleepHistory = _dbHelper.Read<SleepTrackerModel>(selectStmt);

以下returns暂无数据;

var selectStmt = "SELECT * FROM SleepTrackerModel WHERE strftime('%m', 'Date') = '01'";
SleepHistory = _dbHelper.Read<SleepTrackerModel>(selectStmt);

我也试过列出所有列名而不是使用 *.除了我一直在使用的方式之外,我真的找不到任何帮助。 SleepHistory 是一个 ObservableCollection。我想要做的是,当用户单击代表一年中每个月的按钮时,他们将看到该月的数据。

任何帮助都会很棒。谢谢

在SQL中,Date是一个列名,而'Date'只是一个字符串。

strftime('%m', 'Date') 尝试将该字符串解释为日期值,但失败了。

像这样的 SQL 表达式检查一月份的日期:

... WHERE strftime('%m', Date) = '01'