无法在 Cassandra DB 中添加日期时间值?语法错误无效?



>问题:

我目前正在尝试使用以下代码将日期时间对象插入我的 Cassandra 数据库:

dt_str = '2016-09-01 12:00:00.00000'
dt_thing = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S.%f')
def insert_record(session):
session.execute(
"""
INSERT INTO record_table (last_modified)
VALUES(dt_thing)
"""
)

但是,我收到以下错误:

cassandra.protocol.SyntaxException: <Error from server: code=2000 [Syntax error in CQL query] message="line 3:17 no viable alternative at input ')' (...record_table (last_modified)        VALUES([dt_thing])...)">

背景信息

我对Cassandra相对较新,我不知道该怎么做。我基本上要做的是在我的数据库中添加一个现有的日期时间值,因为早期版本的代码正在寻找一个,但它尚不存在(因此,为什么我手动添加一个(。

我使用的是Python 2.7和Cassandra 3.0。

任何输入或如何做到这一点都会很棒!

我昨天回答了一个类似的问题。 但一般的想法是,您需要定义一个准备好的语句。 然后将dt_thing变量绑定到它,如下所示:

dt_str = '2016-09-01 12:00:00.00000'
dt_thing = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S.%f')
def insert_record(session):
preparedInsert = session.prepare(
"""
INSERT INTO record_table (last_modified)
VALUES (?)
"""
)
session.execute(preparedInsert,[dt_thing])

另外,我不建议使用时间戳作为单独的主键(这是该插入唯一可用的模型(。