Как мне написать SQLite-запрос для выбора всех записей за определенный месяц? Мои даты хранятся как метки времени Unix .
В вашем решении разрешен PHP-код, если он требуется. Только для SQLite2-совместимых запросов. :)
Если вы хотите эффективный запрос, используйте BETWEEN:
SELECT * FROM Table1 WHERE date BETWEEN $start AND $end
Где start и end - это временные метки Unix для начала месяца и конца месяца. Они могут быть рассчитаны в PHP с использованием mktime и отправлены в качестве параметров.
start
end
без расчета последнего дня месяца
SELECT * FROM table WHERE strftime('%Y-%m',date(unix_timestamp,'unixepoch','localtime')) = '2010-03'
Использование:
SELECT * FROM TABLE WHERE DATETIME(your_unix_timestamp_col, 'unixepoch') BETWEEN YYYY-MM-DD AND YYYY-MM-DD
Замените YYYY-MM-DD желаемыми датами. См. Справочную страницу для других поддерживаемых форматов.
YYYY-MM-DD
Справка: