我在Flutter应用程序中使用sqflite。在本例中,date是实际日期(2021年6月10日(,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(接近";。2021":"中的语法错误;从Shisha_table中选择计数(*(,其中(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')