Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQLite颤振数据库中保存日期?_Sql_Flutter_Android Sqlite_Android Database_Sqflite - Fatal编程技术网

如何在SQLite颤振数据库中保存日期?

如何在SQLite颤振数据库中保存日期?,sql,flutter,android-sqlite,android-database,sqflite,Sql,Flutter,Android Sqlite,Android Database,Sqflite,我正在制作一个应用程序,用户可以在其中填写表单,并可以为他们进行的每一笔交易保存他们的财务交易详细信息。为此,我还想添加一个日期,并且还想使用该日期获取数据。我正在创建数据库,如下所示: await database.execute( "CREATE TABLE $TABLE_EXPENSES (" "$COLUMN_ID INTEGER PRIMARY KEY," "$COLUMN_NAME TEXT,&qu

我正在制作一个应用程序,用户可以在其中填写表单,并可以为他们进行的每一笔交易保存他们的财务交易详细信息。为此,我还想添加一个日期,并且还想使用该日期获取数据。我正在创建数据库,如下所示:

await database.execute(
      "CREATE TABLE $TABLE_EXPENSES ("
      "$COLUMN_ID INTEGER PRIMARY KEY,"
      "$COLUMN_NAME TEXT,"
      "$COLUMN_AMOUNT INTEGER,"
      "$COLUMN_UNNECESSARYEXPENSES INTEGER,"
      "$COLUMN_CATEGORY TEXT,"
      "$COLUMN_DATETIME TEXT"
      ")",
    );
DateTime dateTime;
String pickedDate;

expense({this.id, this.name, this.amount, this.isUnnecessaryExpenses, this.category, this.dateTime, this.pickedDate}); 

Map toMap() {
var map = {
  DatabaseProvider.COLUMN_NAME: name,
  DatabaseProvider.COLUMN_AMOUNT: amount,
  DatabaseProvider.COLUMN_UNNECESSARYEXPENSES: isUnnecessaryExpenses ? 1 : 0,
  DatabaseProvider.COLUMN_CATEGORY: category,
  DatabaseProvider.COLUMN_DATETIME: pickedDate,
};

if (id != null) {
  map[DatabaseProvider.COLUMN_ID] = id;
}

return map;
}

expense.fromMap(Map map) {
  id = map[DatabaseProvider.COLUMN_ID];
  name = map[DatabaseProvider.COLUMN_NAME];
  amount = map[DatabaseProvider.COLUMN_AMOUNT];
  isUnnecessaryExpenses = map[DatabaseProvider.COLUMN_UNNECESSARYEXPENSES] == 1;
  category= map[DatabaseProvider.COLUMN_CATEGORY];
  pickedDate = map[DatabaseProvider.COLUMN_DATETIME];
}
DateTime _dateTime;
String pickedDate;

Widget DatePicker() {

 showDatePicker(context: context, initialDate: DateTime.now(), firstDate: DateTime.parse("2020-01-01 00:00:01Z"), lastDate: DateTime.now()
).then((value){
  if (value == null){
    return;
  }
  _dateTime = value;
  pickedDate = DateFormat('yyyy-MM-dd').format(_dateTime);
  });
  }
我正在映射如下:

await database.execute(
      "CREATE TABLE $TABLE_EXPENSES ("
      "$COLUMN_ID INTEGER PRIMARY KEY,"
      "$COLUMN_NAME TEXT,"
      "$COLUMN_AMOUNT INTEGER,"
      "$COLUMN_UNNECESSARYEXPENSES INTEGER,"
      "$COLUMN_CATEGORY TEXT,"
      "$COLUMN_DATETIME TEXT"
      ")",
    );
DateTime dateTime;
String pickedDate;

expense({this.id, this.name, this.amount, this.isUnnecessaryExpenses, this.category, this.dateTime, this.pickedDate}); 

Map toMap() {
var map = {
  DatabaseProvider.COLUMN_NAME: name,
  DatabaseProvider.COLUMN_AMOUNT: amount,
  DatabaseProvider.COLUMN_UNNECESSARYEXPENSES: isUnnecessaryExpenses ? 1 : 0,
  DatabaseProvider.COLUMN_CATEGORY: category,
  DatabaseProvider.COLUMN_DATETIME: pickedDate,
};

if (id != null) {
  map[DatabaseProvider.COLUMN_ID] = id;
}

return map;
}

expense.fromMap(Map map) {
  id = map[DatabaseProvider.COLUMN_ID];
  name = map[DatabaseProvider.COLUMN_NAME];
  amount = map[DatabaseProvider.COLUMN_AMOUNT];
  isUnnecessaryExpenses = map[DatabaseProvider.COLUMN_UNNECESSARYEXPENSES] == 1;
  category= map[DatabaseProvider.COLUMN_CATEGORY];
  pickedDate = map[DatabaseProvider.COLUMN_DATETIME];
}
DateTime _dateTime;
String pickedDate;

Widget DatePicker() {

 showDatePicker(context: context, initialDate: DateTime.now(), firstDate: DateTime.parse("2020-01-01 00:00:01Z"), lastDate: DateTime.now()
).then((value){
  if (value == null){
    return;
  }
  _dateTime = value;
  pickedDate = DateFormat('yyyy-MM-dd').format(_dateTime);
  });
  }
我还创建了用户可以保存数据的表单,日期选择器如下所示:

await database.execute(
      "CREATE TABLE $TABLE_EXPENSES ("
      "$COLUMN_ID INTEGER PRIMARY KEY,"
      "$COLUMN_NAME TEXT,"
      "$COLUMN_AMOUNT INTEGER,"
      "$COLUMN_UNNECESSARYEXPENSES INTEGER,"
      "$COLUMN_CATEGORY TEXT,"
      "$COLUMN_DATETIME TEXT"
      ")",
    );
DateTime dateTime;
String pickedDate;

expense({this.id, this.name, this.amount, this.isUnnecessaryExpenses, this.category, this.dateTime, this.pickedDate}); 

Map toMap() {
var map = {
  DatabaseProvider.COLUMN_NAME: name,
  DatabaseProvider.COLUMN_AMOUNT: amount,
  DatabaseProvider.COLUMN_UNNECESSARYEXPENSES: isUnnecessaryExpenses ? 1 : 0,
  DatabaseProvider.COLUMN_CATEGORY: category,
  DatabaseProvider.COLUMN_DATETIME: pickedDate,
};

if (id != null) {
  map[DatabaseProvider.COLUMN_ID] = id;
}

return map;
}

expense.fromMap(Map map) {
  id = map[DatabaseProvider.COLUMN_ID];
  name = map[DatabaseProvider.COLUMN_NAME];
  amount = map[DatabaseProvider.COLUMN_AMOUNT];
  isUnnecessaryExpenses = map[DatabaseProvider.COLUMN_UNNECESSARYEXPENSES] == 1;
  category= map[DatabaseProvider.COLUMN_CATEGORY];
  pickedDate = map[DatabaseProvider.COLUMN_DATETIME];
}
DateTime _dateTime;
String pickedDate;

Widget DatePicker() {

 showDatePicker(context: context, initialDate: DateTime.now(), firstDate: DateTime.parse("2020-01-01 00:00:01Z"), lastDate: DateTime.now()
).then((value){
  if (value == null){
    return;
  }
  _dateTime = value;
  pickedDate = DateFormat('yyyy-MM-dd').format(_dateTime);
  });
  }
现在我想知道它是否是将日期保存在SQLite Flatter数据库中的正确方法,因为我一直在尝试运行查询,但我无法这样做。请按此链接转到我的另一个问题

请帮忙。
感谢您的回复。

这是我使用的正确方法。一切都是正确的,结果是在日期中添加了单引号,这就是它不起作用的原因。现在一切正常