Meine Tabelle sieht wie folgt aus:SQLite Reihe von Zeitstempel löschen <x Tage
tx.executeSql(
"CREATE TABLE IF NOT EXISTS mytable (
msg_id UNSIGNED INT PRIMARY KEY ASC,
msg_when DATETIME,
msg_read INTEGER,
title TEXT, msg_text TEXT
)",
ich Datensätze hinzufügen mit dieser Abfrage:
tx.executeSql(
"INSERT OR REPLACE INTO mytable
(msg_id, msg_when, msg_read, title, msg_text)
VALUES
(?,?,?,?,?)",
ich Zeilen löschen möchten, die über ‚x‘ Tage sind alt und ich benutze diese Abfrage, aber nichts wird gelöscht, der Erfolgs-Callback wird ohne Zeilen aufgerufen.
tx.executeSql(
"DELETE FROM mytable
WHERE msg_when <= datetime('now', '-? days')", [days],
Ich habe auch versucht:
var strQuery = "DELETE FROM mytable
WHERE msg_when <= datetime('now', '-" +days +" days')";
tx.executeSql(strQuery,
und:
var strQuery = "DELETE FROM mytable
WHERE msg_when <= datetime('now', '-4 days')";
tx.executeSql(strQuery,
Die Daten wie folgt aussieht:
json: {"status":"OK"
,"count":1
,"msg_id":"94"
,"when":"2016-08-23 11:21:01"
,"alerts":[
{"msg_id":"44"
,"title":"Medical Emergency"
,"text":"Heart Attack"
,"msg_when":"2016-08-05 14:52:03"
}
]
}
Andere als Reihen von Datum zu löschen, ist alles funktioniert einwandfrei. Irgendwelche Vorschläge, was ich tun kann, um das Löschen zu beheben?
Das löst das Problem nicht. Als eine FYI habe ich auch versucht: DELETE FROM meine Tabelle WHERE msg_when <= datetime ('jetzt', '- "+ Tage +" Tage') und das baut die richtige Zeichenfolge (in meinem Fall '-4 Tage' aber ich haben msgs, die 3+ Wochen alt sind – ppetree
Wenn es nicht funktioniert, müssen Sie einige Beispieldaten in Ihre Frage einbeziehen Beachten Sie, dass Datum/Uhrzeit in SQLite als ISO 8601-Zeichenfolgen gespeichert werden, und das ist, was die Funktion "Datum" zurückgibt Wenn Ihre Daten nicht in diesem Format vorliegen, wird es nicht funktionieren. Beachten Sie, dass SQLite ** das Format ** nicht erzwingt - genauso wie es keine Spaltentypen erzwingt usw. – cartant
Danke für die Info. Die Datetime ist genau wie von mysql als JSON-String 'JJJJ-MM-TT hh: mm: ss' bekannt, msg_when. ;-) Sie werden als solche abgefragt und angezeigt. – ppetree