0

使用“”将数据插入文本列时出现错误,当我删除引号然后 postgres 运行并添加值为 0 的列时。

INSERT INTO tablex (dates, times, openp, high, low, closep, volume)
VALUES ("03/08/2021", 2300, 1680, 1688.6, 1680, 1685.1, 12074);

列日期和时间都被定义为文本列。其他列被定义为 Float。

当我使用上面的代码运行查询时,我收到以下错误:

错误:列“03/08/2021”不存在
第 4 行:(“03/08/2021”、2300、1680、1688.6、1680、1685.1、12074);

删除引号后,列日期将填充 0 值

我该如何解决这个问题?

4

3 回答 3

0
INSERT INTO tablex
(dates, times, openp, high, low, closep, volume)
VALUES
('03/08/2021', 2300, 1680, 1688.6, 1680, 1685.1, 12074);

试试这个,看看它是否有效。用单引号替换双引号。

于 2021-04-26T04:54:35.700 回答
0

您应该按照其他答案的建议使用单引号。

如果使用双引号,则字符串将被视为标识符(表或列名),因此会出现错误消息。在没有任何引用的情况下,03/08/2021 被视为算术表达式,由于整数除法而产生 0。

您永远不应该将日期存储在text列中。这会阻止您在未引用的情况下获得有用的错误消息,并且稍后会导致问题和不一致。使用适当的数据类型date

于 2021-04-26T06:00:22.593 回答
0

单引号用于指示标记是字符串。这在整个 PostgreSQL 的许多不同上下文中使用。

尝试用'(单引号)包围您的字符串值并运行查询。

INSERT INTO tablex (dates, times, openp, high, low, closep, volume)
VALUES ('03/08/2021', 2300, 1680, 1688.6, 1680, 1685.1, 12074);

这应该可以正常工作。

如果您需要在字符串中包含单引号,则可以通过插入两个连续的单引号(两个单引号,而不是双引号)来实现。

例如,您可以通过键入以下内容插入另一个带有嵌入式单引号的字符串:

INSERT INTO my_table(text) VALUES ('How''s it going?');

单引号字符串是分配或检查字符串值的适当方法。

于 2021-04-26T05:49:15.467 回答