Получить записи за определенный месяц, используя SQLite - PullRequest
2 голосов
/ 21 марта 2010

Как мне написать SQLite-запрос для выбора всех записей за определенный месяц? Мои даты хранятся как метки времени Unix .

В вашем решении разрешен PHP-код, если он требуется. Только для SQLite2-совместимых запросов. :)

Ответы [ 3 ]

4 голосов
/ 21 марта 2010

Если вы хотите эффективный запрос, используйте BETWEEN:

SELECT *
FROM Table1
WHERE date BETWEEN $start AND $end

Где start и end - это временные метки Unix для начала месяца и конца месяца. Они могут быть рассчитаны в PHP с использованием mktime и отправлены в качестве параметров.

1 голос
/ 21 марта 2010

без расчета последнего дня месяца

SELECT * 
  FROM table 
 WHERE strftime('%Y-%m',date(unix_timestamp,'unixepoch','localtime')) = '2010-03'
1 голос
/ 21 марта 2010

Использование:

SELECT *
  FROM TABLE 
 WHERE DATETIME(your_unix_timestamp_col, 'unixepoch') BETWEEN YYYY-MM-DD 
                                                          AND YYYY-MM-DD

Замените YYYY-MM-DD желаемыми датами. См. Справочную страницу для других поддерживаемых форматов.

Справка:

...