SQLite文本日期给我一个没有道理的错误

时间:2019-04-16 17:30:40

标签: sql date datetime sqlite

我正在尝试在SQLite中创建一个保存日期的表。我查看了他们的网站,发现我必须使用文本来存储它。但是,我收到一个错误消息,原因是我没有正确插入数据值。

CREATE TABLE fitness_data(
  user varchar(20) primary key,
  day text,
  steps int,
  minOfExercise int,
  calories int
  );

INSERT INTO fitness_data('wrkey', '2019-04-15', 5873, 47, 1429);
Error: near "5873": syntax error

我不确定为什么它不能让我插入数据。我意识到错误是在步骤int上出现的,但是我认为它与日期有关,因为我以前从未使用过该日期,并且我的步骤值没有问题。

任何人都知道问题是什么以及如何解决?

3 个答案:

答案 0 :(得分:2)

尝试:

INSERT INTO fitness_data (user_key, day, steps, minOfExercise, calories) VALUES ('wrkey', '2019-04-15', 5873, 47, 1429);

答案 1 :(得分:1)

尝试一下:

 INSERT INTO fitness_data VALUES ('wrkey', '2019-04-15', 5873, 47, 1429);

尽管首选方法始终是列出要插入的字段:

INSERT INTO fitness_data (user, day, steps, minOfExercise, calories) values ('wrkey', '2019-04-15', 5873, 47, 1429);

答案 2 :(得分:0)

INSERT INTO语句的正确语法为:

INSERT INTO tablename (col1, col2, ...) VALUES (value1, value2, ....)

因此,当您执行此操作时:

INSERT INTO fitness_data('wrkey', '2019-04-15', 5873, 47, 1429)

然后将'wrkey''2019-04-15'5873471429视为列名,而不是您要插入的值。
您可以使用VALUES关键字来解决此问题:

INSERT INTO fitness_data VALUES ('wrkey', '2019-04-15', 5873, 47, 1429)

由于您为所有列设置了值,
但通常,在您的语句中包括要为其设置值的所有列名称始终是一个好习惯:

INSERT INTO fitness_data 
  (user, day text, steps, minOfExercise, calories)
  VALUES 
  ('wrkey', '2019-04-15', 5873, 47, 1429)