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. :)

Foi útil?

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
scroll top