sexta-feira, 19 de outubro de 2007

A Função DATE_PART

Esta utilíssima função retorna parte de uma data, hora ou timestamp para manipulação. É bastante prática e utilizada nas aplicações PostgreSQL. Equivale à função EXTRACT.

Aceita como parâmetros um texto com a parte da data a ser extraída e outro parâmetro com a data/ hora/ timestamp da qual será extraída parte.

Sintaxe:
1- date_part(text, timestamp) double precision
2 - date_part(text, interval) double precision

Exemplos:

1 - Date_part com current_date. Retornando dia da semana, dia, mês e ano.

SELECT date_part('dow', current_date); --DAY OF WEEK
SELECT date_part('day', current_date);
SELECT date_part('month', current_date);
SELECT date_part('year', current_date);

2 - Data_part com current_date retornando dia da semana, dia, mês e ano na mesma linha.

SELECT date_part('day', current_date) as dia, date_part('month', current_date) as mês, date_part('year', current_date) as ano;

3 - Data_part com current_time.

SELECT date_part('hour', current_time);
SELECT date_part('minute', current_time);
SELECT date_part('second', current_time);
SELECT date_part('milliseconds', current_time);

4 - Data_part com current_time retornando hora, minuto, segundo e milésimos de segundo em uma só linha.

SELECT date_part('hour', current_time), date_part('minute', current_time), date_part('second', current_time), date_part('milliseconds', current_time);

5 - Date_part com current_timestamp.

SELECT date_part('dow', current_timestamp);
SELECT date_part('day', current_timestamp);
SELECT date_part('month', current_timestamp);
SELECT date_part('milliseconds', current_timestamp);

6 - Date_part com current_timestamp, retornando dia da semana, dia, mês e os milisegundos da hora corrente.

SELECT date_part('dow', current_timestamp), date_part('day', current_timestamp), date_part('month', current_timestamp), date_part('milliseconds', current_timestamp);

7 - Date_part com conversão da string para campos data/ hora/ timestamp.

SELECT date_part('day', date '12-12-2007');
SELECT date_part('month', date '12-12-2007');
SELECT date_part('hour', time '02:12:45');
SELECT date_part('minute', time '02:12:45');
SELECT date_part('year', timestamp '12-12-2007 02:12:45');
SELECT date_part('hour', timestamp '12-12-2007 02:12:45');

8 - Sintaxes utilizando interval.

SELECT date_part('year', interval '4 years 3 months');
SELECT date_part('month', interval '4 years 3 months');
SELECT date_part('hour', interval '12 hour 10 minutes 12 seconds');
SELECT date_part('minute', interval '12 hour 10 minutes 15 seconds');
SELECT date_part('second', interval '12 hour 10 minutes 15 seconds');

4 comentários:

Souzace disse...
Este comentário foi removido pelo autor.
Souzace disse...

Cara, parabens pelas suas postagens... sou iniciante em postgre + php, fiquei facisnado com a qualidade do banco, estou engatinhando ainda, e vc não sabe o quanto tem me ajudado... Deus Abençoe pelo esfoço!

Andre Mata disse...

como faz para trazer na mesma consulta os sete dias da semana retornando sete linhas ?

Marcela disse...

Parabéns pelo artigo, você tornou tudo muito simples de entender. Eu usava mysql e passei pro postgre a pouco tempo e algumas das funções que eu conhecia não eram compatíveis com ele, mas essas me ajudaram bastante.