2017-05-01 1 views
1

Ich versuche, alle Daten aus einer SQlite-Datenbank für die letzten 24 Stunden auszuwählen. Es gibt eine Spalte "Datum", wo das Datum vorhanden ist und das in der EPOCH-Zeit ist. Ich habe eine Vielzahl von verschiedenen Befehlen versucht, aber dies scheint zu sein, was ich habe, so weit:Wählen Sie die letzten 24 Stunden von SQlite, wo die EPOCH Zeit verwendet wurde

SELECT * 
FROM Log 
WHERE UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL -1 DAY)) 

und

SELECT * FROM Log WHERE Date >= datetime('now', ' '-24 hours'); 

Dies nicht zu funktionieren scheinen. Letztlich Ich versuche, die letzten 24 Stunden dieser Datenbank in eine CSV in Unix und haben nur die letzten 24 Stunden, um dort mit den folgenden zu konvertieren:

sqlite3 -header -csv /opt/demo/log_20170501131627.db " select * from Log 
WHERE Date >= datetime('now', ' '-24 hours');" > /opt/demo/DB.csv 

Irgendwelche Ideen?

Antwort

2
SELECT * FROM Log WHERE Date >= strftime('%s', 'now', '-1 day'); 

Sie können es versuchen, hier:

http://sqlfiddle.com/#!5/440d5/2/0

edit: vereinfachte strftime Nutzung basierend auf "CL." -s Kommentar unten (danke)

+0

Brilliant! Das funktioniert perfekt. Vielen Dank! –

+0

Gern geschehen. Vergessen Sie nicht, die Antwort zu akzeptieren, die Sie für die beste halten. – ARS81

+2

Sie brauchen keinen separaten 'datetime()' Aufruf; Alle [Datumsfunktionen] (http://www.sqlite.org/lang_datefunc.html) akzeptieren Modifikatoren. –

Verwandte Themen