sql >> Base de Datos >  >> RDS >> Mysql

No obtener el resultado deseado después de ejecutar un QoQ

Las consultas en memoria (QoQ) pueden ser complicadas cuando se trata de tipos de datos. Son mucho menos expertos en conversiones implícitas de tipos de datos que una base de datos. Usando el date_format de MySQL función, en realidad está convirtiendo los valores de fecha y hora en cadenas . Entonces, cuando ejecuta su QoQ, CF puede estar realizando una cadena comparación, que produciría resultados muy diferentes a una fecha comparación. Podría explicar por qué está obteniendo los resultados incorrectos.

Intenta cambiar tu base de datos consulta para devolver un valor de fecha y hora en lugar de una cadena:

SELECT 
   COUNT(Timedetail) as Occurances
   , STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM   ....
WHERE  ...

Actualización:

Otra opción es CAST el valor como DATE en su QoQ. Eso obligaría a QoQ a realizar una comparación de fechas, en lugar de una comparación de cadenas:

WHERE  CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#" 
                                          cfsqltype="cf_sql_date">