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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar