Re: Campo Time

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: Adelo <adelo(dot)herrero(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Campo Time
Date: 2019-12-17 08:39:44
Message-ID: CA+bJJbzZnDriGra+0CAeeryRSmp86jc0mRYJEfkdz6R+MmG_wQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Adelo:

On Mon, Dec 16, 2019 at 9:11 PM Adelo <adelo(dot)herrero(at)gmail(dot)com> wrote:
> Tengo una tabla con un campo time without time zone y en una
> consulta utilizo ese campo para filtrar. Durante las pruebas y por
> error, en un registro se grabó las 00:00:00 y en la consulta me estaba
> volviendo loco porque me devuelve que las 00:00:00 es mayor que las
> 16:06:00. He modificado el campo a las 00:00:01 y me devuelve
> correctamente que es menor que las 16:06:00.
> ¿Es normal este comportamiento?

He visto ya varios mensajes que te dicen que uses otro tipo de datos,
no entrare en eso. Supongo que usas el tipo time para uno de sus
muchos usos legitimos ( para los lectores, "La ventana de
mantenimiento diaria es de 01:00UTC a 01:20UTC, las clases de
literatura son Lunes y Jueves de 10 a 12", etc.. ).

No se si has observado que los campos time admiten dos valores para la
medianoche, 0000 y 2400 ( logico, si quieres expresar cosas como las
de arriba necesitas ambos ).

http://sqlfiddle.com/#!17/9eecb/43330 <<select t, t>'16:00'::time
from (values('00:00'::time), ('24:00'::time)) as v(t);>>

Puede ser que lo que tuvieras en el campo fuera 24:00 pero al
visualizarlo te la estaba jugando?

Eso se puede ver de varias formas, p.e. con extract o una resta:

http://sqlfiddle.com/#!17/9eecb/43334 <<select t, extract(hours from
t), extract(epoch from t), t-'00:00'::time from
(values('00:00'::time), ('24:00'::time)) as v(t);>>

Me imagino que las rutinas de salida por defecto ponen algo "user
friendly" o se reusan entre times y timestamps, y eso puede haberte
mordido, metiste "la basura a de bajarse de 23:00 a 24:00", pero al
imprimirlo te dice "23:00 a 00:00". Probablemente haya alguna opcion
creativa para hacerlo con el to_char, pero no me la se de memoria.

FOS.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Francisco Olarte 2019-12-17 08:44:46 Re: Campo Time
Previous Message Olivier Gautherot 2019-12-16 20:53:51 Re: Campo Time