SQLite Unix timestamp для получения дат старше 2 дней назад - PullRequest
0 голосов
/ 11 марта 2019

У меня есть поле в моей базе данных SQLite с именем create_date, и я хочу вернуть все результаты, превышающие 2 дня назад.

Я запускаю это:

SELECT strftime ('% Y-% m-% d% H:% M:% S', "creation_date" / 1000, 'unixepoch') ИЗ Логов

Я получаю результаты в правильном формате даты и времени, но когда добавляю это в конец:

где create_date <= datetime ('now', '- 2 day') </p>

возвращаются все 10 результатов.

created_date, created_date as datetime
1552143373, 2019-03-09 21:44:55 55.000
1552143373, 2019-03-09 21:44:55 55.000
1552143373, 2019-03-09 21:27:38 38.000
1552143373, 2019-03-09 21:29:19 19.000
1552143373, 2019-03-09 21:30:06 06.000
1552143373, 2019-03-09 21:30:10 10.000
1552143373, 2019-03-09 21:41:28 28.000
1552143373, 2019-03-09 21:42:40 40.000
1552143373, 2019-03-09 21:43:25 25.000
1552143373, 2019-03-09 21:50:07 07.000

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Функция datetime () возвращает «ГГГГ-ММ-ДД ЧЧ: ММ: СС» - https://www.sqlite.org/lang_datefunc.html

Поэтому используйте strftime('%s','now','-2 days'), чтобы получить целочисленную строку для сравнения.

0 голосов
/ 11 марта 2019

-2 days - дата и время довольно специфичны, чтобы не пропустить 's'

...