我如何 select 统计小于 1 年的记录?

How do I select and count records less than 1 year old?

我在我的 Flutter 应用程序中使用 sqflite。在此示例中,date 是实际日期 (10.06.2021),DATUM 是数据库中的数据字段。

var x = await db.rawQuery('SELECT COUNT (*) FROM Shisha_table WHERE YEAR('+date+') - YEAR(DATUM) = 1');
int count = Sqflite.firstIntValue(x);
return count;

我不断收到此语法错误:

E/SQLiteLog(30657): (1) near ".2021": syntax error in "SELECT COUNT (*) FROM Shisha_table WHERE (YEAR(10.06.2021) - YEAR(DATUM)) = 1"

SQLite中没有YEAR()函数。

您的代码逻辑可以通过使用函数 strftime():

提取日期的年份来编写
SELECT COUNT(*) 
FROM Shisha_table 
WHERE strftime('%Y', CURRENT_DATE) - strftime('%Y', DATUM) <= 1

或者,如果您想要从去年的同一天到今天的行:

SELECT COUNT(*) 
FROM Shisha_table 
WHERE DATUM >= date(CURRENT_DATE, '-1 year')