Usuário com melhor resposta
FUNÇÃO PARA TRANSFORMAR '1' PARA '01' OU '001'

Pergunta
-
Olá,
Existe alguma função que me retorna uma quantidade de caracteres escolhida por mim, uma conversão de 1 caractere para 2 por exemplo ?
Exemplo:
Select #Função('1', 2)
Return: '01'
Pois sempre que preciso deixar 2 caracteres preciso verificar a quantidade total dos caracteres e então adicionar um zero antes caso seja 1.
Teria outro jeito de fazer isso ? Já existe uma função para isso ?
Obrigado,
Felipe Souza.
Respostas
-
Boa tarde,
Não sei se é possível obter esse resultado com uma única função nativa, mas você pode experimentar mais ou menos dessa forma:
select RIGHT(REPLICATE('0', 3) + '1', 3)
Espero que seja útil.
Assinatura: http://www.imoveisemexposicao.com.br
- Editado gapimex segunda-feira, 27 de maio de 2013 17:42
- Marcado como Resposta Felipe Peres segunda-feira, 27 de maio de 2013 17:47
-
Experimente mais ou menos dessa forma:
SELECT CAST(FLOOR(MinhaColunaFloat) as varchar) + ':' + LEFT(CAST((MinhaColunaFloat - FLOOR(MinhaColunaFloat)) * 100 as varchar) + '0', 2)
Sobre a função Right, ela retorna a quantidade de caracteres a direita da string de acordo com o parâmetro; se você passar 2 como parâmetro, serão retornados os 2 últimos caracteres da direita.
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Felipe Peres segunda-feira, 27 de maio de 2013 19:33
-
Experimente dessa forma:
SELECT CASE WHEN MinhaColunaFloat < 10 then '0' else '' end + CAST(FLOOR(MinhaColunaFloat) as varchar) + ':' + LEFT(CAST((MinhaColunaFloat - FLOOR(MinhaColunaFloat)) * 100 as varchar) + '0', 2)
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Felipe Peres segunda-feira, 27 de maio de 2013 19:58
Todas as Respostas
-
Boa tarde,
Não sei se é possível obter esse resultado com uma única função nativa, mas você pode experimentar mais ou menos dessa forma:
select RIGHT(REPLICATE('0', 3) + '1', 3)
Espero que seja útil.
Assinatura: http://www.imoveisemexposicao.com.br
- Editado gapimex segunda-feira, 27 de maio de 2013 17:42
- Marcado como Resposta Felipe Peres segunda-feira, 27 de maio de 2013 17:47
-
Olá felipe, não sei se vai te ajudar.
Você pode contar a quantidade de caractere utilizando a Função LEN
select LEN (Coluna) FROM teste
Espero que eu tenha te ajudadoWellinghton Pimentel Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
-
-
Olá,
O que estou precisando fazer é transformar tal "texto" em hora.
Exemplo:
0,3 = 00:30
1 = 01:00
1,5 = 01:50
Ai eu iria pegar todo texto antes da virgula com PATINDEX e mudar para 2 digitos, e fazer o mesmo depois da virgula, depois iria concatenar um com o outro com ':' no meio.
Seria o modo mais fácil ?
Obrigado desde já.
Felipe Souza.
-
Esses valores estão gravados em uma tabela?
Se estão, qual é o tipo de dados da coluna?
Assinatura: http://www.imoveisemexposicao.com.br
-
Estão sim, o tipo é FLOAT.
Naquele exemplo que você me enviou estou com um problema.
Quando o numero a ser trocado é '100' e eu coloco 2 dígitos, ele desconsidera 1.
Preciso colocar 0 só quando tem 1 digito ( Exemplo: '1' ).
Obrigado por ajudar,
Felipe Souza.
- Editado Felipe Peres segunda-feira, 27 de maio de 2013 18:38 COLOQUEI TIPO ERRADO
-
Experimente mais ou menos dessa forma:
SELECT CAST(FLOOR(MinhaColunaFloat) as varchar) + ':' + LEFT(CAST((MinhaColunaFloat - FLOOR(MinhaColunaFloat)) * 100 as varchar) + '0', 2)
Sobre a função Right, ela retorna a quantidade de caracteres a direita da string de acordo com o parâmetro; se você passar 2 como parâmetro, serão retornados os 2 últimos caracteres da direita.
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Felipe Peres segunda-feira, 27 de maio de 2013 19:33
-
Muito obrigado cara, é isso mesmo.
Só preciso agora de concatenar um zero antes caso tenha apenas um digito antes dos dois pontos. Esta me retornando os dados da seguinte forma:
1 = 1:00
5 = 5:00
1 = 1:00
4 = 4:00
0,5 = 0:50
15 = 15:00Preciso deixar assim:
1 = 01:00
5 = 05:00
1 = 01:00
4 = 04:00
0,5 = 00:50
15 = 15:00Você já me deu o caminho. Vou tentar fazer e retorno com o resultado.
Obrigado,
Felipe Souza.
-
Experimente dessa forma:
SELECT CASE WHEN MinhaColunaFloat < 10 then '0' else '' end + CAST(FLOOR(MinhaColunaFloat) as varchar) + ':' + LEFT(CAST((MinhaColunaFloat - FLOOR(MinhaColunaFloat)) * 100 as varchar) + '0', 2)
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Felipe Peres segunda-feira, 27 de maio de 2013 19:58
-