重要 如果你這個問題今天處理,使用來自datastax(即進口卡桑德拉)新卡桑德拉驅動程序,因爲它解決了這個最常見的問題和唐不再使用舊的cql驅動程序,它已經過時了!這個問題在新驅動程序甚至處於開發階段之前就已經陳舊了,我們不得不使用一個名爲cql的不完整的舊庫(導入cql < - 不要再使用它,轉到新的驅動程序)。如何插入日期時間爲卡桑德拉1.2時間戳列
簡介 我正在使用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庫沒有逃脫(「」),或在運行查詢之前轉換的日期時間。
問題 什麼是做,而無需手動逃逸的日期,並能完整的時間戳更精確地存儲到卡桑德拉時間戳列的正確方法是什麼?
在此先感謝!
感謝abhi,這正是我所要求的。我會在幾個發佈完整的答案。 – 2013-05-14 15:54:11