Запрашивая базу данных SQLite моего приложения Android, я столкнулся с любопытной проблемой. У меня есть запрос, который сравнивает время одной эпохи (хранится в базе данных в целочисленном поле) с текущим временем эпохи. Чтобы упростить отладку, я написал небольшой тестовый запрос, чтобы увидеть, как SQLite обрабатывает мое целое число эпохи по сравнению с функцией strftime. Вот мой запрос:
select 1615759200 < strftime('%s', 'now');
Результат:
1
Для справки: значение 1615759200 - это дата 14 марта 2021 года. Текущая дата на момент написания - 28 апреля , 2020, что примерно 1588033692 в эпоху времени. По понятным причинам я ожидаю, что приведенный выше запрос приведет к 0: ложь, поскольку дата в 2021 году НЕ меньше, чем дата в 2020 году. И все же он возвращает 1: истина! Это бесит! Кто-нибудь может сказать мне, что мне здесь не хватает?