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'


Ingresemos el siguiente lote de comandos SQL en pgAdmin:

 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:

PostgreSQL pgAdmin funciones de fecha y hora


Retornar