MySQL: quem está hoje "ON" entre 2 datas diferentes
Pergunta
Eu tenho um problema MySQL. (Eu uso PHP com ele).
Por exemplo, eu tenho esse tipo de banco de dados:
Nome | Iniciado e | vai acabar
Jason | 2009-12-17 | 2009-12-24
Ericke | 2009-12-12 | 2009-12-30
Maria | 2010-01-02 | 2010-01-10
Com a pergunta do MySQL (ou PHP), eu gostaria de obter os nomes das pessoas, que estão "em" agora (2009-12-19).
A resposta deve ser:
Jason
Ericke
Obrigado pela sua grande ajuda antecipadamente!
Solução
Que tal uma consulta em que você compare datas?
Algo assim, suponho, deveria fazer:
select name
from your_table
where started <= curdate()
and will_end >= curdate()
Notas :
- Você precisará ajustar os nomes da tabela e colunas, é claro
- E talvez você queira usar
>
e<
ao invés de>=
e<=
; depende de seus dados. - Eu uso o
curdate()
Função, que obtém a data do dia atual - eu gosto mais do que injetar a data na consulta usando algum código PHP.
Outras dicas
SELECT *
FROM `table`
WHERE CURDATE() BETWEEN `startdate` AND `enddate`
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow