Сравните записи в базе данных, чтобы получить только записи за сегодня - PullRequest
0 голосов
/ 17 апреля 2020

В ответ на этот вопрос: Как запросить базу данных SQL Lite с использованием флаттера sqflite

Я храню время добавления записей в базу данных с использованием вычисляемого целого числа:

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

И получение суммы столбца сумма в моей базе данных Water с использованием следующего в моем файле database_manager.dart:

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

Как вернуть только сегодняшние элементы в функцию sumItems ()?

1 Ответ

0 голосов
/ 17 апреля 2020

в предложении where вы должны заменить time именем столбца в таблице

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"];

    }
...