[Pgsql-ayuda] Definir un campo de hora.

Ariel Nardelli ariel@empresanardelli.com.ar
Wed, 16 Jan 2002 20:15:02 -0300


El Martes 15 Enero 2002 22:46, Roberto Andrade Fonseca escribió:
> Hola Ariel:

Hola Roberto y Gracias por la respuesta, te cuento que ya lo hice funcionar y 
que anda perfecto, mi idea era no guardar los segundos ya que no los necesito 
y ver la forma de "sacarlos" para no ocupar espacio "al cuete" en las bases 
de datos, pero veo que no lo puedo sacar, asi que actualmente tengo guardado 
en formato time y los segundos no le estoy dando utilizacion.

Muchisimas gracias igualmente por la ayuda.
>
> El lun, 14-01-2002 a las 17:00, Ariel Nardelli escribió:
> > Quiero definir en mi base de datos un campo de hora, y quiero guardarla
> > en formato 24 horas y solo hora y minutos y asi guardarla para poder
> > despues hacer algun tipo de resta con esas horas desde php.
> >
> > Como hago para definirlo? si bien estube mirando el formato TIME me
> > permite definir los tipos de hora que quiero armar, quiero saber como
> > setear ese formato del time para que me tome HH:MM y que HH sea en
> > formato 24 horas.
>
> Hice lo que sigue, en psql:
> Primero crear una tabla de pruebas
>
> 	create table prueba_tiempo (
> 	fecha_ingreso date,
> 	hora_ingreso time);
>
> Luego insertar algunos datos.
> 	insert into prueba_tiempo values (date(now()), '20:40');
> 	insert into prueba_tiempo values (date(now()), '08:40');
> 	insert into prueba_tiempo values (date(now()), '8:50');
>
> Observa que escribo en formato de 24 horas, y que da igual '08' que '8'.
> Tampoco definí segundos, así que su valor en la base de datos será '00'.
>
> Ahora la salida del select:
> pruebas=# select * from prueba_tiempo ;
>
>  fecha_ingreso | hora_ingreso
> ---------------+--------------
>  2002-01-15    | 20:40:00
>  2002-01-15    | 08:40:00
>  2002-01-15    | 08:50:00
> (3 rows)
>
> La hora sale con formato de 24 horas.
>
> Puedes obtener intervalos con la función time_mi_time (tiempo menos
> tiempo) de PostgreSQL:
>
> pruebas=# select time_mi_time('08:40:00' ,'20:50:00');
>  time_mi_time
> --------------
>  12:10
> (1 row)
>
> Espero que te sirva, pero en caso contrario mándanos tus nuevas dudas.