Cassandra:无法将'2016-04-06 13:06:11.534000'强制转换为格式化日期(长)

far*_*awa 11 cql cassandra cqlsh

我正在尝试使用cqlsh更新我的cassandra数据库中的现有项目:

$ > UPDATE allEvents SET "isLastEvent" = True WHERE "websiteId" = 'sd-8231'
AND "purchaser" = False
AND "currentTime" = '2016-04-06 13:06:11.534000';
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

InvalidRequest:code = 2200 [无效查询] message ="无法强制'2016-04-06 13:06:11.534000'到格式化日期(长)"

如果它可以帮助:

$ > show version
[cqlsh 5.0.1 | Cassandra 3.0.2 | CQL spec 3.3.1 | Native protocol v4]
Run Code Online (Sandbox Code Playgroud)

Aar*_*ron 15

那是因为Cassandra时间戳类型只支持毫秒.你currentTime的精确度太高了.修剪最后三个零,这应该工作:

UPDATE allEvents SET "isLastEvent" = True 
WHERE "websiteId" = 'sd-8231'
      AND "purchaser" = False 
      AND "currentTime" = '2016-04-06 13:06:11.534';
Run Code Online (Sandbox Code Playgroud)

  • @farhawa 我猜你用来将数据插入 Cassandra 的任何客户端都将插入与更新处理不同,并以静默方式删除额外的精度。 (2认同)