Samuelsjn Postado Dezembro 11, 2007 Denunciar Share Postado Dezembro 11, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Dezembro 11, 2007 Denunciar Share Postado Dezembro 11, 2007 O extract minute retorna um número entre 1 e 31, por isso apenas com ele não tem como.Voce usa alguma linguagem de programacão? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuelsjn Postado Dezembro 11, 2007 Autor Denunciar Share Postado Dezembro 11, 2007 Boa tarde Kandrade,Estou utilizando Delphi 7.tem alguma sugestão?Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Dezembro 11, 2007 Denunciar Share Postado Dezembro 11, 2007 A sugestão é tratar isso na linguagem de programacão.Se não tiver nenhum problema eu movo esse tópico para o fórum de delphi.ok? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samuelsjn Postado Dezembro 12, 2007 Autor Denunciar Share Postado Dezembro 12, 2007 Bom dia Kandrade,Não há problema algum.Estou precisando muito resolver isso.Então no postgres não há nenhuma função para recuperar isto?Muito Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Janeiro 2, 2008 Denunciar Share Postado Janeiro 2, 2008 Creio que não seja possível fazer isso no PostgreSQL.Movendo o tópico para Delphi. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 3, 2008 Denunciar Share Postado Janeiro 3, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 25, 2008 Denunciar Share Postado Janeiro 25, 2008 Sem resposta do membro à MP de confirmação e como a solução apresentada foi no banco, estou devolvendo o tópico para Pastgres. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Janeiro 25, 2008 Denunciar Share Postado Janeiro 25, 2008 A solucão que o Micheus passou funciona só foi preciso um pequeno ajuste. Teste e nos de um retorno.select substring(current_time || '' from 4 for 2) AS minutos; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest valeria maria lauande Postado Setembro 19, 2008 Denunciar Share Postado Setembro 19, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Samuelsjn
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 para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.