none
Cual tipo de hora es mas recomendable guardar en campos tipo DateTimeOffSet, la hora del pais o la hora UTC RRS feed

  • Pregunta

  • Hola, estoy creando unas tablas con campos tipo DateTimeOffSet, pero tengo la duda de cual es la major manera de almacenar su valor?

    1- El valor de la fecha del pais del usuario:
    Ej.05/03/2016 22:09:35 -04:30

    2- El valor de la fecha UTC
    Ej. 06/03/2016 02:39:39 +00:00

    Creo que esto no deberia influir, segun estoy leyendo en la documentacion "primera vez que voy a usar este campo", deberia ser transparente y creo que incluso para los Order By, SQL sabe interpretar ambos casos. Sin embargo quiero certificar que no me equivoco y por eso necesito que me digan si alguien ha tenido una experiencia al respecto.

    Saludos
    domingo, 6 de marzo de 2016 2:43

Respuestas

  • En realidad el datetimeoffset lo que hace es guardar la fecha en UTC, lo que pasa es que adicionalmente almacena el ajuste de zona horaria con el que se creó la fecha. La cuestión que deberías valorar es ¿necesitas almacenar el ajuste de zona horaria original?

    Esa pregunta es la que te dirá si deberías elegir uno u otro tipo de datos.

    El funcionamiento con las operaciones entre fechas y con el order by (como comentabas) es el mismo dado que, como ya he dicho, en realidad la fecha se almacena como UTC.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta Zr-.- jueves, 10 de marzo de 2016 5:10
    domingo, 6 de marzo de 2016 8:56

Todas las respuestas

  • En realidad el datetimeoffset lo que hace es guardar la fecha en UTC, lo que pasa es que adicionalmente almacena el ajuste de zona horaria con el que se creó la fecha. La cuestión que deberías valorar es ¿necesitas almacenar el ajuste de zona horaria original?

    Esa pregunta es la que te dirá si deberías elegir uno u otro tipo de datos.

    El funcionamiento con las operaciones entre fechas y con el order by (como comentabas) es el mismo dado que, como ya he dicho, en realidad la fecha se almacena como UTC.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta Zr-.- jueves, 10 de marzo de 2016 5:10
    domingo, 6 de marzo de 2016 8:56
  • En realidad el datetimeoffset lo que hace es guardar la fecha en UTC, lo que pasa es que adicionalmente almacena el ajuste de zona horaria con el que se creó la fecha. La cuestión que deberías valorar es ¿necesitas almacenar el ajuste de zona horaria original?

    Esa pregunta es la que te dirá si deberías elegir uno u otro tipo de datos.

    El funcionamiento con las operaciones entre fechas y con el order by (como comentabas) es el mismo dado que, como ya he dicho, en realidad la fecha se almacena como UTC.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    Hola nuevamente y gracias.

    ¿necesitas almacenar el ajuste de zona horaria original?

    La verdad eso es lo que no se, estoy diseñando aun la aplicación y no se cual es mas conveniente, si guardar el valor como:

    DateTimeOffset.UtcNow; (06/03/2016 19:35:46 +00:00)

    O guardar el valor del país.

    Ejemplo, si se encuentra en Venezuela: (06/03/2016 15:05:46 -04:30)

    Por ello queria saber si alguien ha trabajado con aplicaciones similares y tiene un punto de vista mas amplio.

    Saludos

    domingo, 6 de marzo de 2016 19:39
  • Lo que tienes que plantearte es si en algún momento en tu aplicación vas a necesitar mostrar la fecha en la zona horaria del usuario que grabó el mensaje. Si lo que vas a hacer es mostrar siempre la fecha y hora en la zona horaria del usuario conectado no necesitas almacenar la fecha horaria del usuario que creó el mensaje por lo que puedes almacenar la fecha/hora en formato UTC sin necesidad de utilizar un DateTimeOffset.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 6 de marzo de 2016 20:04