【发布时间】:2020-04-12 22:31:19
【问题描述】:
我可以在 Cassandra 中看到一个带有日期时间值的 COPY FROM 命令的奇怪问题。
我的时区和服务器的时区相同。 IST (GMT+5:30)
首先我尝试使用 INSERT 查询插入一个值。
INSERT INTO activity (home_id, datetime, event, code_used) VALUES ('H01474777', '2014-05-21 07:32:16', 'alarm set', '5599');
它给了我下面一行。
home_id | datetime | code_used | event
-----------+---------------------------------+-----------+-----------
H01474777 | 2014-05-21 02:02:16.000000+0000 | 5599 | alarm set
这里 Cassandra 通过删除 +5:30 来显示 GMT 时间值
但是当我尝试通过 COPY FROM 命令插入以下内容时,您可以看到它在显示 GMT 值时添加了 +5:30,就像添加行时它增加了 11 小时的时间一样。 分别参见下面的文件、查询和输出。
home_id|datetime|event|code_used
H02257222|2014-05-21 05:29:47|alarm set|1566
H01474777|2014-05-21 07:32:16|alarm set|5599
查询:
COPY activity (home_id, datetime, event, code_used) FROM '/home/cass/events.csv' WITH HEADER = TRUE AND DELIMITER = '|';
结果:
home_id | datetime | code_used | event
-----------+---------------------------------+-----------+-----------
H01474777 | 2014-05-21 13:02:16.000000+0000 | 5599 | alarm set
H01474777 | 2014-05-21 02:02:16.000000+0000 | 5599 | alarm set --Old row from insert query.
H02257222 | 2014-05-21 10:59:47.000000+0000 | 1566 | alarm set
这里的前 2 行是相同的数据,表的前 2 列是主键,但在应该只有 2 行的地方又创建了另一行。
【问题讨论】: