Como contar os registros apenas do dia vigente até o momento SQL

28/01/2016

0

Boa tarde,

Após muito tentar cheguei ao ponto de pedir ajuda...rsss

Estou fazendo um farol de contagem de entrada de registros e preciso de alguns dados por data nesta consulta. A lógica seria assim

Nº de registos dia Atual
Nº de Registros de ontem
Nº de registros dos últimos 30 dias

Minha dúvida é que não estou conseguindo puxar os registros do dia atual. Ele exibe 0 como resultado e quando até o momento tem 5

Segue código:

// Registros de ontem

$query1 = "SELECT * FROM esm_cadastro_franqueados WHERE cad_datetime BETWEEN CURRENT_DATE()-1 AND CURRENT_DATE() AND cad_farol = 'vermelho'";


$query2 = "SELECT * FROM esm_cadastro_franqueados WHERE cad_datetime BETWEEN CURRENT_DATE()-1 AND CURRENT_DATE() AND cad_farol = 'verde'";


// Registros do mês

$query3 = "SELECT * FROM esm_cadastro_franqueados WHERE cad_datetime BETWEEN CURRENT_DATE()-27 AND CURRENT_DATE() AND cad_farol = 'vermelho'";


$query4 = "SELECT * FROM esm_cadastro_franqueados WHERE cad_datetime BETWEEN CURRENT_DATE()-27 AND CURRENT_DATE() AND cad_farol = 'verde'";


// Registros atuais até o momento TENHO DÚVIDA NESSE

$query5 = "SELECT * FROM esm_cadastro_franqueados WHERE cad_datetime = CURRENT_DATE () AND cad_farol = 'vermelho'";

$query6 = "SELECT * FROM esm_cadastro_franqueados WHERE cad_datetime = CURRENT_DATE () AND cad_farol = 'verde'";

Exibo com a função:

mysql_num_rows()

Se puderem me ajudar.

Att. Neo
Nelson Amaral

Nelson Amaral

Responder

Posts

28/01/2016

Marcos P

Sempre que inserir código no post, utilize a tag <Inserir Codigo>, isso facilita ( em muito ) a leitura !

Tente assim...

SELECT * 
FROM esm_cadastro_franqueados 
WHERE (cad_farol = 'vermelho')  AND (datediff(dd,cad_datetime, getdate()) = 0)
Responder

28/01/2016

Claudio Lopes

Sempre que inserir código no post, utilize a tag <Inserir Codigo>, isso facilita ( em muito ) a leitura !

Tente assim...

SELECT * 
FROM esm_cadastro_franqueados 
WHERE (cad_farol = 'vermelho')  AND (datediff(dd,cad_datetime, getdate()) = 0)



Eu ainda faria assim
SELECT * 
FROM esm_cadastro_franqueados 
WHERE (cad_farol = 'vermelho')  AND cad_datetime BETWEEN convert(date,getedate()) and  dateadd(86400,convert(date,getedate()))


OBS: Se sua tabela estiver indexada pelo campo cad_datetime (e creio que o formato seja datetime) vc faz o uso performático de sua consulta. Um processo simples de verificar isso (se tiver permissão no banco) é o show plan, poderá comparar e verificar.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar