Obtenha registros de um mês específico usando o sqlite
Pergunta
Como eu escreveria uma consulta SQLite para selecionar todos os registros de um mês específico? Minhas datas são armazenadas como UNIX Timestamps.
O código PHP é permitido em sua solução, se for necessário. Apenas consultas compatíveis com SQLITE2, por favor. :)
Solução
Se você deseja uma consulta eficiente, deve usar entre:
SELECT *
FROM Table1
WHERE date BETWEEN $start AND $end
Onde start
e end
são os registros de data e hora do UNIX para o início do mês e o final do mês. Estes podem ser calculados em PHP usando mktime e enviado como parâmetros.
Outras dicas
Usar:
SELECT *
FROM TABLE
WHERE DATETIME(your_unix_timestamp_col, 'unixepoch') BETWEEN YYYY-MM-DD
AND YYYY-MM-DD
Substitua o YYYY-MM-DD
com as datas que você deseja. Consulte a página de referência para outros formatos suportados.
Referência:
Sem calcular o último dia no mês
SELECT *
FROM table
WHERE strftime('%Y-%m',date(unix_timestamp,'unixepoch','localtime')) = '2010-03'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow