Listado completo de tutoriales
23 - Funciones para el uso de fechas y horas |
PostgreSQL ofrece algunas funciones para trabajar con fechas y horas. Estas son algunas:
- current_date: retorna la fecha actual. Ejemplo:
select current_date;
Retorna por ejemplo '2009-05-20'
- current_time: retorna la hora actual con la zona horaria. Ejemplo:
select current_time;
Retorna por ejemplo '18:33:06.074493+00'
- current_timestamp: retorna la fecha y la hora actual con la zona horaria. Ejemplo:
select current_timestamp;
Retorna por ejemplo '2009-05-20 18:34:16.63131+00'
- extract(valor from timestamp): retorna una parte de la fecha u hora según le indiquemos antes del from, luego del from debemos indicar un campo o valor de tipo timestamp (o en su defecto anteceder la palabra clave timestamp para convertirlo). Ejemplo:
select extract(year from timestamp'2009-12-31 12:25:50');
Retorna el año '2009'
select extract(month from timestamp'2009-12-31 12:25:50');
Retorna el mes '12'
select extract(day from timestamp'2009-12-31 12:25:50');
Retorna el día '31'
select extract(hour from timestamp'2009-12-31 12:25:50');
Retorna la hora '12'
select extract(minute from timestamp'2009-12-31 12:25:50');
Retorna el minuto '25'
select extract(second from timestamp'2009-12-31 12:25:50');
Retorna el segundo '50'
select extract(century from timestamp'2009-12-31 12:25:50');
Retorna el siglo '21'
select extract(dow from timestamp'2009-12-31 12:25:50');
Retorna el día de a semana '4'
select extract(doy from timestamp'2009-12-31 12:25:50');
Retorna el día del año '365'
select extract(week from timestamp'2009-12-31 12:25:50');
Retorna el número de semana dentro del año '53'
select extract(quarter from timestamp'2009-12-31 12:25:50');
Retorna en que cuarto del año se ubica la fecha '4'
drop table if exists libros; create table libros( titulo varchar(40) not null, autor varchar(20) default 'Desconocido', editorial varchar(20), edicion timestamp, precio decimal(6,2) ); insert into libros values('El aleph','Borges','Emece','1980/10/10',25.33); insert into libros values('Java en 10 minutos','Mario Molina','Siglo XXI','2000/05/05',50.65); insert into libros values('Alicia en el pais de las maravillas','Lewis Carroll','Emece','2000/08/09',19.95); insert into libros values('Aprenda PHP','Mario Molina','Siglo XXI','2000/02/04',45); -- Mostramos el título del libro y el año de edición: select titulo, extract(year from edicion) from libros; -- Mostramos el título del libro y el cuarto del año de edición: select titulo, extract(quarter from edicion) from libros; -- Muestre los títulos de los libros que se editaron el día 9, --de cualquier mes de cualquier año: select titulo from libros where extract(day from edicion)=9;
La ejecución de este lote de comandos SQL genera una salida similar a: