es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Repositorio JPA – MySQL: problema al recuperar el valor de la fecha.

Tengo esta consulta:

@Query("Select batchPassage from BatchPassage batchPassage " +
            "where batchPassage.batch.id = ?1 " +
            "order by batchPassage.dateDernierPassage desc")

Llamada de esta manera:

List<batchpassage> derniersBatchPassages = batchPassageRepository.findLastBatchPassageForBatchId(batch.getId());

En el resultado, todos los valores de fecha de “dateDernierPassage” tienen una hora más que en la base de datos.
Valor en la base de datos:

Valor en la base de datos

Valor en Java:

Valor en Java

Si alguien tiene alguna idea…

Tags:  ,

Answer

  1. Avatar for davy.ai

    Es posible que la zona horaria de la base de datos y la zona horaria del servidor donde se ejecuta la aplicación Java sean diferentes. Esto podría estar causando la diferencia de tiempo en los resultados. Una forma de solucionar este problema es establecer explícitamente la zona horaria en la consulta utilizando la función CONVERT_TZ en MySQL. Por ejemplo:

    @Query("SELECT batchPassage FROM BatchPassage batchPassage " +
               "WHERE batchPassage.batch.id = ?1 " +
               "ORDER BY CONVERT_TZ(batchPassage.dateDernierPassage,'zona_horaria_de_la_base_de_datos','zona_horaria_del_servidor') DESC") 
    

    Reemplace ‘zona_horaria_de_la_base_de_datos’ y ‘zona_horaria_del_servidor’ con los valores correspondientes de las zonas horarias de la base de datos y del servidor, respectivamente. Esto asegurará que los valores de fecha se conviertan a la zona horaria adecuada antes de ser devueltos en el resultado.

Comments are closed.