Menu

Guardar formato de hora en MSSQL Server utilizando LocalTime

2024-07-01
2024-07-04
  • Dereck Castillo

    Dereck Castillo - 2024-07-01

    Buen día desarroladores de OpenXava, tengo una consulta.
    Estoy usando openxava y jaspersoft studio para crear reportes. Mi problema es que no se guarda el formato de la hora en la base de datos aunque en OpenXava si se diferencia el formato con LocalTime. Pregunto si existe otro formato que solo incluya hora y minutos con formato (am, pm) o hora militar si es posible.

        @Column
        private LocalTime horaAb;
        @Column
        private LocalTime horaIngre;
    

    En la imagen adjunta se aprecia mi descripcion.
    Gracias

     

    Last edit: Dereck Castillo 2024-07-01
  • Javier Paniza

    Javier Paniza - 2024-07-03

    Hola Dereck:

    La base de datos nunca guarda un formato de visualización para una fecha o una hora, eso es algo de lo que se encarga la aplicación. Por ejemplo, lo normal es que la base de datos guarde una hora como una cantidad de milisegundo, simplemente, y después tu aplicación podría visualizar 14;00, o 2:00 PM, o 2.00pm, depende normalmente del país en el que estés. De hecho, OpenXava hace eso, tanto para las fechas como para las horas.

    Si nos cuentas más sobre tu problema en concreto, es decir, que es exactamente lo que quieres hacer, te podemos proponer alguna forma de arreglarlo.


    Ayuda a otros en este foro como yo te ayudo a ti.

     
  • Dereck Castillo

    Dereck Castillo - 2024-07-03

    Hola Javier:
    Gracias por tu contestación,
    Actualmente estoy utilizando OpenXava para digitar la hora, se muestre en el reporte y que luego este al darle en "Save" se guarde en la base de datos. Queria saber la configuracion exacta que debo utilizar en Openxava para almancenar una hora en especifico (con el formato deseado) ejemplo que el usuario en el campo digite : 2:32pm y que esta hora se guarde correctamente en la base de datos. ¿Como puedo hacer esto?
    Intente usar LocalTime sin embargo este no incluye ninguna logica para guardarse correctamente en la base de datos pues aunque en Openxava yo elija 1:00AM o 1:00pm, este no tiene ninguna diferencia dentro de la base de datos pues solo se guarda como 1:00. Debo hacer una clase de tipo acción para incluir esta lógica? Muchas gracias de antemano

     
    • Chungyen Tsai

      Chungyen Tsai - 2024-07-04

      Hola Derek,

      Creé un nuevo proyecto. Y en la entidad que se crea automáticamente, YourFirstEntity, puse un LocalTime time;
      Y probé guardar unos registros en formato de 24hs(idioma español) y con formato 12hs(idioma inglés), tanto para MSSQL como para HSQLDB funcionaron correctamente. En la base de datos se guarda en formato de 24hs.

      Si lo que necesitas es que en el reporte se presente de X forma, lo más fácil seria al momento de recibir el tiempo, adaptarlo al formato que desees.

      Saludos.

       

Log in to post a comment.