2016-07-10 3 views
0

Ich möchte eine Tabelle (SQLite-Datenbank) aktualisieren Spalte mit konstanten Wert hinzufügen. Allerdings habe ich einige Probleme. Ich schaffe Tisch mitWie Spalte mit Zeitunterschied in Sqlite hinzufügen (Python)

cursor.execute('''CREATE TABLE users(col1 text, col2 text, 
       dateCol datetime default current_timestamp, 
       diff float)''') 

Dann füge ich Werte in die Tabelle

cursor.execute('''INSERT INTO users (col1, col2, dateCol) 
       VALUES (?, ?, ?)''', (n1_, n2_, n3_)) 

Verwendung Wenn ich konstante Werte hinzufügen, mit folgenden es funktioniert.

Allerdings möchte ich den Zeitunterschied zwischen dateCol mit dem neuesten Datensatz einfügen. Wie kann ich meine Tabelle aktualisieren, indem ich den Zeitunterschied (in Sekunden) zum neuesten (neuesten) Datensatz und allen anderen Datensätzen hinzufüge?

+0

Wissen Sie, wie die Zeit des neuesten Rekord zu bekommen? Wie berechnet man den Unterschied zwischen Zeitstempeln? Wie verwende ich Unterabfragen? –

+0

Ja. Ich lese es aus einer Datei und füge es in die Tabelle ein. Ich lese eine Datei (analysiere Zeilen, um Zeitstempel zu erhalten) und habe ** n3 _ ** hat einen neuen Zeitstempel, den ich an den SQL-Befehl übergebe. cursor.execute ('' 'INSERT INTO Benutzer (col1, col2, dateCol) WERTE (?,?,?)' '', (n1_, n2_, ** n3 _ **)) – user1430763

+0

Welche meiner drei Fragen haben Sie? mit "Ja" antworten? Wenn alle drei, müssten Sie Ihre Frage nicht stellen ... –

Antwort

1

SQLite hat keine date function Unterschiede zu berechnen, aber dies ist möglich durch eine numerische date format mit:

UPDATE users 
SET diff = julianday((SELECT MAX(dateCol) FROM users)) 
      - julianday(dateCol);