- Fórum WMO
- → Viewing Profile: Posts: piuiabacaxi
Community Stats
- Group Usuários
- Active Posts 2
- Profile Views 315
- Member Title Novato no fórum
- Age Age Unknown
- Birthday Birthday Unknown
-
Sexo
Não informado
0
Neutral
User Tools
Friends
piuiabacaxi hasn't added any friends yet.
Latest Visitors
Posts I've Made
In Topic: Select
04/10/2008, 10:38
Utilize " ... AND status IN (12, 14)", assim vai retornar os rows em que o status for um dos que você passou.
In Topic: Como Selecionar O Proximo Mês
13/09/2008, 23:46
Seguindo a sua lógica seria
WHERE MONTH(age_data) = MONTH(NOW() + INTERVAL 1 MONTH)
Contudo, como você tá usando a função month() na coluna da tabela, todos os rows precisarão ser lidos para que o mês seja extraído e a partir daí o critério ser avaliada.
Pra evitar isso, você pode tentar:
WHERE age_data BETWEEN NOW() + INTERVAL 1 MONTH - INTERVAL DAY(NOW() + INTERVAL 1 MONTH) - 1 DAY AND LAST_DAY(NOW() + INTERVAL 1 MONTH)
Sendo NOW() + INTERVAL 1 MONTH - INTERVAL DAY(NOW() + INTERVAL 1 MONTH) - 1 DAY uma forma de pegar o primeiro dia do mês que vem; e LAST_DAY(NOW() + INTERVAL 1 MONTH) o último dia do mês que vem.
Essas funções são avaliadas só 1 vez na query, que acabaria sendo executada assim:
WHERE age_data BETWEEN '2008-10-01 23:42:39' AND '2008-10-31'
Se o campo age_data for datetime ao invés de date, você vai precisar de mais algumas mandingas pra transformar a hora da primeira data em 00:00:00 e da segunda em 23:59:59.
Divirta-se!
WHERE MONTH(age_data) = MONTH(NOW() + INTERVAL 1 MONTH)
Contudo, como você tá usando a função month() na coluna da tabela, todos os rows precisarão ser lidos para que o mês seja extraído e a partir daí o critério ser avaliada.
Pra evitar isso, você pode tentar:
WHERE age_data BETWEEN NOW() + INTERVAL 1 MONTH - INTERVAL DAY(NOW() + INTERVAL 1 MONTH) - 1 DAY AND LAST_DAY(NOW() + INTERVAL 1 MONTH)
Sendo NOW() + INTERVAL 1 MONTH - INTERVAL DAY(NOW() + INTERVAL 1 MONTH) - 1 DAY uma forma de pegar o primeiro dia do mês que vem; e LAST_DAY(NOW() + INTERVAL 1 MONTH) o último dia do mês que vem.
Essas funções são avaliadas só 1 vez na query, que acabaria sendo executada assim:
WHERE age_data BETWEEN '2008-10-01 23:42:39' AND '2008-10-31'
Se o campo age_data for datetime ao invés de date, você vai precisar de mais algumas mandingas pra transformar a hora da primeira data em 00:00:00 e da segunda em 23:59:59.
Divirta-se!
- Fórum WMO
- → Viewing Profile: Posts: piuiabacaxi
- Privacy Policy
- Regras ·