У меня есть дата с именем столбца «date» в моей таблице «productions», сохраненная как целое число в формате unix (пример: 1548263300000). И я хочу получить только год. Когда я делаю:
SELECT strftime('%Y ',date) as year
FROM productions
, он возвращает мне null.
, когда я меняю тип на ТЕКСТ в своей таблице и сохраняю дату в строковом формате (пример 2020-05-01) , тот же sql возвращает мне «2020», что является правильным и тем, что я искал.
Почему strftime () не работает с целыми числами, поскольку документация SQLite говорит, что вы можете работать с TEXT, INTEGER и REAL для дат? Как использовать функции даты с целыми числами?
дополнительная информация:
в этом руководстве они также используют strftime с целыми числами, и, похоже, для них это работает, поэтому я понимаю из этого, что функции доступны независимо от того, какой тип вы используете (текст, int, real): ссылка
когда я использую:
SELECT strftime('%Y',DATETIME(ROUND(date/ 1000), 'unixepoch'))
FROM productions;
это работает хорошо, но я не понимаю, почему я должен делать все это, когда использую целые числа, но когда я использую текст, он работает напрямую.