Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não obtendo a saída desejada após executar um QoQ


As consultas na memória (QoQ's) podem ser complicadas quando se trata de tipos de dados. Eles são muito menos experientes em conversões de tipos de dados implícitos do que um banco de dados seria. Usando o date_format do MySQL função, você está realmente convertendo os valores de data e hora em strings . Então, quando você executa seu QoQ, o CF pode estar executando uma string comparação, o que produziria resultados muito diferentes de uma data comparação. Poderia explicar por que você está obtendo os resultados errados.

Tente alterar seu banco de dados query para retornar um valor de data e hora em vez de uma string:
SELECT 
   COUNT(Timedetail) as Occurances
   , STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM   ....
WHERE  ...

Atualização:

Outra opção é CAST o valor como um DATE em seu QoQ. Isso forçaria o QoQ a realizar uma comparação de datas, em vez de uma comparação de strings:
WHERE  CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#" 
                                          cfsqltype="cf_sql_date">