在 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'
我在根据特定月份从我的 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'