Olá,
Outra sugestão é usar as procedures abaixo:
/* PC_len(str)
// Essa procedure devolve o tamanho da STRING passada como parâmetro.
// Original de Ivan Prenosil
Adaptada por: Caio José Hugueney Lopes de Oliveira */
CREATE PROCEDURE PC_Len (str VARCHAR(100))
RETURNS (len INTEGER) AS
DECLARE VARIABLE pat VARCHAR(100);
BEGIN
len = null;
IF (str IS NULL) THEN EXIT;
pat = '';
len = 0;
WHILE (NOT str LIKE pat) DO BEGIN
pat = pat || '_';
len = len + 1;
END
END
^
/* PC_StrZero(str)
// Essa procedure devolve o tamanho da STRING passada como parâmetro.
// Original de: Ivan Prenosil
Adaptada por Caio Jose Hugueney Lopes de Oliveira */
CREATE PROCEDURE PC_StrZero (vstr VARCHAR(100), nTam INT)
RETURNS (vstr2 varchar(100)) AS
DECLARE VARIABLE vallen INT;
BEGIN
vstr2 = null;
EXECUTE PROCEDURE PC_LEN vstr
RETURNING_VALUES vallen;
IF (vstr IS NULL) THEN EXIT;
IF (nTam IS NULL) THEN EXIT;
vstr2 = vstr;
WHILE (nTam > vallen) DO
BEGIN
vstr2 = '0'||vstr2;
vallen = vallen +1;
END
END
^
[]s
Caio Oliveira
Post by Mr.MothmanCaro clm_silva,
Você pode utilizar as funções externas "rpad" e "lpad" que tem a
<l ou r>pad (<string_de_entrada>, <tamanho_final>, <caracter_de_preechimento>)
<l ou r>pad = nome da função;
<string_de_entrada> = o string que você deseja "converter";
<tamanho_final> = o tamanho que o string deverá ter no final (inteiro); e
<caracter_de_preenchimento> = o caracter que deverá ser duplicado
para completar o <string_de_entrada> até o tamanho <tamanho_final>.
Obs.: RPAD completa o <string_de_entrada> com o
<caracter_de_preenchimento> sendo inserido à direita, ou seja, no
final do string e
LPAD completa o <string_de_entrada> com o
<caracter_de_preenchimento> sendo inserido à esquerda, ou seja, no
início do string.
Um exemplo para o seu caso?
select lpad (extract (month from dt_cadastro), 2, '0') from tipo_documento;
selecione da tabela tipo_documento todos os meses da coluna
dt_cadastro, formatando os dados com zeros à esquerda com tamanho
máximo de 2 caracteres.
Beleza?
Espero ter podido ajudá-lo.
[ ]'s
Mr.Mothman
Post by clm_silva-zC5dV/vN+a1fJ/Ai pessoal, como faço para preencher um campo com zeros a esquerda, como no exemplo abaixo pego o mes 8 mas quero que traga como 08.
Select Cast(Extract(Month from V.DATA_INICIO) as Varchar(2)) from tabela;
...
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa