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:
