SQLite datetime дает нечитаемые 7+ цифр месяц и день - PullRequest
0 голосов
/ 29 мая 2019

Когда я выполняю следующий запрос в моей базе данных SQLite, предназначенный для преобразования даты и времени unixtime в читаемый формат:

select datetime('1483228802') from mytable limit 1;

Я получаю следующий результат:

4056230-49125276-18 12:00:00

Очевидно, что-то не так. День и месяц не читаются, а год и время неверны, так как этот код Python для преобразования этого шоу unixtime:

from datetime import datetime
ts = int("1483228802")
print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))

>2017-01-01 00:00:02

1 Ответ

3 голосов
/ 29 мая 2019

Вам необходимо использовать модификатор 'unixepoch'.Без этого число интерпретируется как юлианские дни.

SELECT datetime(1483228802, 'unixepoch');

db <> fiddle

С «Функции даты и времени» :

Модификатор "unixepoch" (11) (...) заставляет DDDDDDDDDDD интерпретироваться не как юлианский номер дня, как обычно, а как Unix Time (...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...