我有一个使用以下脚本创建的表:
CREATE TABLE "TestTable2" (
id uuid,
timestamp timestamp,
msg text,
priority int,
source text,
PRIMARY KEY (id, timestamp)
);
现在我插入一行:
INSERT INTO "TestTable2" (id, timestamp, msg, source) values (uuid(), '2002-03-31 02:36:10', 'asdas dasdasd', 'system1');
我收到错误:
无法在'UdcCluster'上执行CQL脚本:无法将'2002-03-31 02:36:10'强制转换为格式化日期(长)
如果我将月份的日期更改为30或小时为22,则语句成功执行。 你能告诉我这个日期有什么问题吗?
PS。 同样的错误重复'1998-03-29 02:12:13','1987-03-29 02:55:21'和'1984-03-25 02:45:25'。在所有情况下,它都是在3月底的凌晨2点......
答案 0 :(得分:0)
您正试图从特定的本地时间到达DateTime实例,并且您希望它能够抵御夏令时。
在模式中指定时区:yyyy-mm-dd HH:mm:ssZ
其中Z是RFC-822 4位数时区,表示时区 与UTC的区别。例如,对于1月2日的日期和时间, 2003年,格林威治标准时间04:05:00:
如果未指定时区,则为Cassandra的时区 使用处理写请求的协调器节点。为了准确, DataStax建议指定时区而不是依赖 在Cassandra节点上配置的时区。
https://docs.datastax.com/en/cql/3.1/cql/cql_reference/timestamp_type_r.html