python - 如何将日期时间插入 Cassandra 1.2 时间戳列

标签 python cassandra cql

重要 如果您今天正在处理这个问题,请使用来自 datastax 的新 cassandra-driver(即 import cassandra),因为它解决了大部分常见问题并且不再使用旧的 cql 驱动程序,它已经过时了!这个问题在新驱动程序开发之前就已经存在了,我们不得不使用一个名为 cql 的不完整的旧库(导入 cql <-- 不要再使用它,移动到新驱动程序)。

简介 我正在使用 python 库 cql 访问 Cassandra 1.2 数据库。在数据库中,我有一个带有时间戳列的表,在我的 Python 代码中,我有一个要插入列中的日期时间。示例如下:

表格

CREATE TABLE test (
     id text PRIMARY KEY,
     last_sent timestamp
);

代码

import cql
import datetime
...
cql_statement = "update test set last_sent = :last_sent where id =:id"
rename_dict = {}
rename_dict['id'] = 'someid'
rename_dict['last_sent'] = datetime.datetime.now()
cursor.execute (cql_statement, rename_dict)

问题

当我执行代码时,实际执行的 cql 语句是这样的:

update test set last_sent =2013-05-13 15:12:51 where id = 'someid'

然后它因错误而失败

 Bad Request: line 1:XX missing EOF at '-05'

问题似乎是 cql 库在运行查询之前没有转义 ('') 或转换日期时间。

问题 在不手动转义日期的情况下执行此操作的正确方法是什么,并且能够将更精确的完整时间戳存储到 cassandra 时间戳列中?

提前致谢!

最佳答案

我可以告诉您如何在 cqlsh 中执行此操作。试试这个

update test set last_sent =1368438171000 where id = 'someid'

日期时间 2013-05-13 15:12:51 的等效长值是 1368438171000

关于python - 如何将日期时间插入 Cassandra 1.2 时间戳列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16532566/

相关文章:

cassandra - 如何将 actix_web 与 cassandra-sys-rs 连接池一起使用?

nosql - Cassandra 使用复合索引和辅助索引

python - 皮威 ORM : select function()

python - 将C公式转换为Python

java - 使用 Datastax Cassandra 驱动程序时重新使用 PreparedStatement?

cassandra - Cassandra 中的总行数

java - 使用 Play Framework 更新 CQL Cassandra

python - 2 个未对齐的列表按元素相加?

python - Pandas 将 NaN 从零插值到下一个有效值

cassandra - UUID Cassandra