내 표는 다음과 같습니다 일 : 나는 'X'일에 걸쳐있는 행을 삭제할SQLite는 타임 스탬프 행을 삭제 <X
tx.executeSql(
"INSERT OR REPLACE INTO mytable
(msg_id, msg_when, msg_read, title, msg_text)
VALUES
(?,?,?,?,?)",
:
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
)",
내가이 쿼리를 사용하여 레코드를 추가 이 쿼리를 사용하고 있지만 아무것도 삭제되지 않습니다. 성공 콜백은 아무런 영향을 미치지 않고 호출됩니다.
tx.executeSql(
"DELETE FROM mytable
WHERE msg_when <= datetime('now', '-? days')", [days],
나는 또한 시도했다 :
var strQuery = "DELETE FROM mytable
WHERE msg_when <= datetime('now', '-" +days +" days')";
tx.executeSql(strQuery,
과 :
날짜별로 행을 삭제하는 것보다 다른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"
}
]
}
, 모든 것이 : 같은
var strQuery = "DELETE FROM mytable
WHERE msg_when <= datetime('now', '-4 days')";
tx.executeSql(strQuery,
는
데이터 보인다 완벽하게 잘 작동합니다. 삭제를 수정하기 위해 내가 할 수있는 것에 대한 제안 사항이 있습니까?
그래도 문제가 해결되지 않습니다. 참고로, 나는 또한 시도했다 : mytable에서 DELETE WHERE msg_when <= datetime ('now', '- "+ days +"days') 그리고 올바른 문자열을 만든다. (내 경우에는 -4 일이지만 3 주 이상 된 메시지가있는 경우 – ppetree
작동하지 않는 경우 질문에 샘플 데이터를 포함해야합니다. 날짜/시간이 ISO 8601 문자열로 SQLite에 저장되며 이는 date 함수가 반환하는 것입니다. . 데이터가 해당 형식이 아닌 경우 작동하지 않습니다 .SQLite는 형식을 적용하지 않습니다 ** - 열 유형을 적용하지 않는 것처럼 말입니다. – cartant
정보를 보내 주셔서 감사합니다. datetime은 정확합니다. mysql에서 json 문자열로 전달 된 'YYYY-MM-DD hh : mm : ss'는 msg_when이라고 유명합니다. ;-) 그런 식으로 쿼리하고 표시합니다. – ppetree