Array
(
)

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

Nelson Amaral
   - 28 jan 2016

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

Marcos P
   - 28 jan 2016

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

Tente assim...

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

Din
   - 28 jan 2016


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

Tente assim...

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


Eu ainda faria assim
#Código
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.