17 - Tipo de dato fecha y hora |
Ya explicamos que al crear una tabla debemos elegir la estructura adecuada, esto es, definir los campos y sus tipos más precisos, según el caso.
Para almacenar valores de tipo FECHA Y HORA PostgreSQL dispone de tres tipos:
1) date: almacena una fecha en el rango de 4713 antes de crísto hasta 32767 después de cristo.
2) time: Almacena la hora del día.
3) timestamp: Almacena la fecha y la hora del día.
Las fechas se ingresan entre comillas simples.
Para almacenar valores de tipo fecha se permiten como separadores "/", "-","." entre otros.
PostgreSQL requiere que se ingrese la fecha con el formato aaaa/mm/dd:
insert into empleados values('Ana Gomez','22222222','2008/12/31');
PostgreSQL permite configurar el formato de ingreso de la fecha seteando la variable de entorno llamada DATESTYLE:
SET DATESTYLE TO 'European';
Con el ejemplo anterior luego podemos ingresar una fecha con el formato Europeo que es dd/mm/aaaa:
insert into empleados values('Pablo Rodriguez','11111111','31/12/2008');
Otros valores de seteo son:
ISO utiliza fechas y horas de estilo ISO 8601. SQL utiliza fechas y horas de estilo Oracle/Ingres. Postgres utiliza el formato tradicional de Postgres. European utiliza dd/mm/aaaa para la representación numérica de las fechas. NonEuropean utiliza mm/dd/aaaa para la representación numérica de las fechas. German utiliza dd.mm.aaaa para la representación numérica de las fechas. US igual que 'NonEuropean' DEFAULT recupera los valores por defecto ('US,Postgres')
Para almacenar solo la hora debemos utilizar el tipo time. En un campo tipo time podemos almacenar un valor en el rango: 00:00:00.00 23:59:59.99.
insert into asistencia(fecha,hora) values ('2008/12/31','13:00:59');
Por último si queremos almacenar la fecha y la hora en un único campo debemos definirlo de tipo timestamp:
insert into asistencia (fechahora) values ('2008/12/31 13:00:00.59');