WICHTIG einzufügen Wenn Sie mit diesem Problem heute zu tun haben, verwenden Sie das neue cassandra-Treiber von DataStax (dh Import cassandra), da es die meisten dieser gemeinsamen Probleme und don löst Benutze den alten cql Treiber nicht mehr, er ist veraltet! Diese Frage ist alt, bevor der neue Treiber gerade in Entwicklung war, und wir mussten eine unvollständige alte Bibliothek namens cql verwenden (import cql < - verwende das nicht mehr, gehe zum neuen Treiber).Wie ein Datetime in eine Cassandra 1.2 Zeitstempel Spalte
Intro Ich benutze die Python-Bibliothek CQL, um auf eine Cassandra 1.2-Datenbank zuzugreifen. In der Datenbank habe ich eine Tabelle mit einer Timestamp-Spalte und in meinem Python-Code muss eine Datetime in die Spalte eingefügt werden. Beispiel wie folgt:
Tabelle
CREATE TABLE test (
id text PRIMARY KEY,
last_sent timestamp
);
Der Code
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)
Das Problem
Wenn ich den Code der tatsächlichen cql Anweisung ausgeführt ausführen, wie dies :
update test set last_sent =2013-05-13 15:12:51 where id = 'someid'
Dann schlägt es mit einem Fehler
Bad Request: line 1:XX missing EOF at '-05'
Das Problem, dass die cql Bibliothek zu sein scheint, ist (‚‘) nicht entkommen oder die Datetime konvertieren, bevor die Abfrage ausgeführt wird.
Die Frage Was ist der richtige Weg, dies ohne manuell zu tun, das Datum zu entkommen und in der Lage sein, einen vollständigen Zeitstempel speichern mit mehr Präzision in eine cassandra Timestamp-Spalte?
Vielen Dank im Voraus!
Danke abhi, das ist genau das, was ich frage. Ich werde eine vollständige Antwort in einigen veröffentlichen. –