Jump to content
Fórum Script Brasil
  • 0

Função extract do postgres


Samuelsjn

Question

Ola pessoal,

Fazendo uma consulta sql no banco postgres, precisei pegar o minuto da hora atual.

Utilizei a esta função: extract(minutes from current_time) as minutos.

Ela realmente pega os minutos das horario. Mas, se por exemplo, estiver 14:03 ela so pega o 3.

Eu gostaria que ela pegasse no formato de dois digitos, 03, teria como?

Obrigado

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0
Utilizei a esta função: extract(minutes from current_time) as minutos.

Ela realmente pega os minutos das horario. Mas, se por exemplo, estiver 14:03 ela so pega o 3.

Eu gostaria que ela pegasse no formato de dois digitos, 03, teria como?

Então no postgres não há nenhuma função para recuperar isto?
Acredito que tenha sim.

Não utilizo Postgres, mas por analogia e de acordo com o que consta na documentação que encontrei (PostgreSQL Prático - versão 8.1.4), talvez você não precise fazer isto via programação.

No FireBird, por exemplo, a função current_time, utilizada num SELECT e apresentada por uma ferramenta de consulta mostra a hora no formato hh:mm:ss (ex. 02:21:06). Mas, na verdade ainda há os milisegundos. Assim, se você fizer uso do CAST para convertê-lo para um VARCHAR, precisará lembrar disto, porque o tamanho passa a ser maior (caso contrário você obterá erro).

Há, ainda, a opção da conversão "implícita" onde você faz o SELECT concatenando um string nulo à current_time e, com isto, o resultado automaticamente seria uma string.

Uma vez tendo a string, bastaria pegar a substring desejada, neste caso, a partir da posição 3 dois caracteres.

Estes recursos funcionam no FireBird e, como existem no Postgres, podem servir para resolver seu problema.

Assim, experimente os seguintes exemplos e veja se irá funcionar no Postgres:

- CAST: select substring(cast(current_time as varchar(13)) from 3 for 2)

- string nulo: select substring(current_time || '' from 3 for 2) ('' são duas áspas simples)

Abraços

Link to comment
Share on other sites

  • 0
Guest valeria maria lauande
Utilizei a esta função: extract(minutes from current_time) as minutos.

Ela realmente pega os minutos das horario. Mas, se por exemplo, estiver 14:03 ela so pega o 3.

Eu gostaria que ela pegasse no formato de dois digitos, 03, teria como?

Então no postgres não há nenhuma função para recuperar isto?
Acredito que tenha sim.

Não utilizo Postgres, mas por analogia e de acordo com o que consta na documentação que encontrei (PostgreSQL Prático - versão 8.1.4), talvez você não precise fazer isto via programação.

No FireBird, por exemplo, a função current_time, utilizada num SELECT e apresentada por uma ferramenta de consulta mostra a hora no formato hh:mm:ss (ex. 02:21:06). Mas, na verdade ainda há os milisegundos. Assim, se você fizer uso do CAST para convertê-lo para um VARCHAR, precisará lembrar disto, porque o tamanho passa a ser maior (caso contrário você obterá erro).

Há, ainda, a opção da conversão "implícita" onde você faz o SELECT concatenando um string nulo à current_time e, com isto, o resultado automaticamente seria uma string.

Uma vez tendo a string, bastaria pegar a substring desejada, neste caso, a partir da posição 3 dois caracteres.

Estes recursos funcionam no FireBird e, como existem no Postgres, podem servir para resolver seu problema.

Assim, experimente os seguintes exemplos e veja se irá funcionar no Postgres:

- CAST: select substring(cast(current_time as varchar(13)) from 3 for 2)

- string nulo: select substring(current_time || '' from 3 for 2) ('' são duas áspas simples)

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...