【问题标题】:SQLite text date is giving me an error that doesn't make senseSQLite 文本日期给了我一个没有意义的错误
【发布时间】:2019-09-06 21:08:40
【问题描述】:

我正在尝试在 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,但我认为它与日期有关,因为我以前从未使用过该日期,而且我认为我的步骤值没有问题。

有人知道问题出在哪里以及如何解决吗?

【问题讨论】:

标签: sql date datetime sqlite


【解决方案1】:

试试:

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

【讨论】:

  • 天哪。我什至没有意识到我没有使用 values 关键字。谢谢!
【解决方案2】:

试试这个:

 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);

【讨论】:

  • 我忘记了 values 关键字...哎呀。谢谢!
【解决方案3】:

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)

【讨论】:

  • 没有意识到我忘记了 values 关键字。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 2017-05-14
  • 2017-08-02
  • 1970-01-01
  • 2022-06-29
  • 1970-01-01
  • 2020-01-22
相关资源
最近更新 更多