Ejemplo de consulta:
<cfquery name="jkgh" dbtype="hql">
SELECT COUNT(production_status_id)
FROM production s
where convert(varchar(10),s.production_end,111) =
'#dateformat(now(),"yyyy/mm/dd")#'
</cfquery>
Estoy tratando de convertir la marca de tiempo 'production_end' a un formato de fecha (cualquier formato funcionará sin el tiempo) para compararlo con la fecha de hoy.
Probé todos los métodos de conversión que pude encontrar, pero hasta ahora todos han dado un error.
Si esto no es posible, tendré que cambiar la estructura de la base de datos para incluir dos campos separados con fecha y hora... o abandonar Hibernate y escribir una consulta SQL...
¿Qué me estoy perdiendo?
Solución del problema
donde convert(varchar(10),s.production_end,111) = '#dateformat(now(),"yyyy/mm/dd")#'
No debería necesitar modificar la columna de fecha. (Además, ese tipo de comparación generalmente se desaconseja porque no es sargable ). El enfoque estándar para devolver filas con la fecha de hoy es usar:
WHERE production_end >= {TodaysDateAtMidnight}
AND production_end < {TomorrowsDateAtMidnight}
... o en otras palabras
WHERE production_end >= '2022-04-15' -- Today is April 15, 2022
AND production_end < '2022-04-16'
Si tiene la tentación de usar ENTRE, vea:
- ¿Qué tienen en común BETWEEN y el diablo?
- Salir con responsabilidad
No hay comentarios:
Publicar un comentario