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:
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!
como faz para trazer na mesma consulta os sete dias da semana retornando sete linhas ?
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.
Postar um comentário