segunda-feira, 28 de maio de 2012

Obtendo Dia, Mês e Ano separadamente no PostgreSQL


PostgreSQL
Salve salve colegas.

Dando continuidade ao assunto da matéria Obtendo Dia, Mês e Ano separadamente no MySQL, hoje trago a dica para o Banco de Dados PostgreSQL.

1º - Como obter o dia de uma data especifica?
R:
 Select Extract('Day' From data) From datas;  

Desta forma você obtêm o dia, do campo data da tabela datas.

Para obter o dia atual, faça:
 Select Extract('Day' From Now());  

2º - Como obter o mês de uma data especifica?
 Select Extract('Month' From data) From datas;  

Para obter o mês atual, faça:
 Select Extract('Month' From Now());  

3º - Como obter o ano de uma data especifica?
 Select Extract('Year' From data) From datas;  

Para obter o ano atual, faça:
 Select Extract('Year' From Now());  

Lembrando que, o campo deve estar alimentado no formato YYYY-MM-DD HH:MM:SS para retornar as informações.

Para aprimorar seu conhecimento, aconselho a leitura também do post: Função para Formatar Data no PostgreSQL.

Material de referência: http://pgdocptbr.sourceforge.net/pg80/functions-datetime.html

Grande abraço a todos e até a próxima.

Clique aqui e veja todas as matérias sobre PostgreSQL

4 comentários:

  1. Vou começar a fazer um curso de SQL na Impacta. Será muito útil seu blog, desde já agradeço.

    Pra quem estiver precisando de uma luz tá ai:Curso SQL Impacta


    Abraços!

    ResponderExcluir
    Respostas
    1. Obrigado pela contribuição amigo, bons estudos.

      Excluir
  2. Ola.

    eu tenho um banco no PostgreSQL o o nome da tabela clientes e a coluna chamada nasc.

    Gostaria de saber como faço para pegar por exemplo todos os registros com o mes 4. ja tentei de todas as formas e nao consigo.
    No SQL SERVER eu consegui assim :

    SELECT nasc FROM clientes WHERE month(nasc)= '12' ;


    porem no PostgreSQL ele não aceita esse comando, da o seguinte erro:


    ERRO: função month(character varying) não existe
    LINE 1: SELECT nasc FROM clientes WHERE MONTH(nasc)= '04'
    ^
    HINT: Nenhuma função corresponde com o nome e os tipos de argumentos informados.

    ResponderExcluir
    Respostas
    1. Olá Littiele.

      Faça da seguinte forma:

      SELECT nasc FROM clientes WHERE extract('month' from nasc ) = 4;

      Espero seu feedback sobre o resultado, abraços.

      Excluir