比较数据库条目以仅获取今天的条目

Compare database entries to get only the ones from today

跟进这个问题:

我正在使用计算的 int 存储添加数据库条目的时间:

  static int currentTimeInSeconds() {
    var now = (DateTime.now()).millisecondsSinceEpoch;
    return now;
  }

并使用 database_manager.dart 文件中的以下内容获取 Water 数据库中 amount 列的总和:

  Future<int> sumItems() async {
    await openDb();
    final sum = await _database.rawQuery("SELECT sum(amount) as sum FROM Water");
    return sum[0]["sum"];
  }

我如何在 sumItems() 函数中只 return 今天的项目?

在 where 子句中,您必须将 time 替换为您在 Table

中的列名
Future<int> sumItems() async {

      DateTime now = new DateTime.now();
      DateTime today = new DateTime(now.year, now.month, now.day);
      DateTime endtoday = today.add(new Duration(days:1));

      await openDb();
      final sum = await _database.rawQuery("SELECT sum(amount) as sum FROM Water WHERE time >= '" + today.millisecondsSinceEpoch.toString() + "' AND time < '" + endtoday.millisecondsSinceEpoch.toString() + "'");
      return sum[0]["sum"];

    }