GOOGLE ADS

lunes, 25 de abril de 2022

Convertir la marca de tiempo a la fecha ColdFusion HQL SQL Server

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

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...