Jump to content


Photo

Inserir Um Zero A Esquerda


  • Faça o login para participar
6 replies to this topic

#1 Gabriel2ny

Gabriel2ny

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino

Posted 05/06/2009, 08:47

Bom dia pessoal, estou com um problema aparentemente simples, mas nao estou achando a solução.

Tenho o campo "DATA DE ADMISSAO" varchar(4) que é composto pela concatenação de duas variaveis, MES_ADM e ANO_ADM

O campo data de admissao fica da seguinte maneira:

Ex.:
1298 (quer dizer q a admissao foi em dezembro de 1998)
Faço isso usando o seguinte codigo
mes_adm = Left(data_adm,2)
		ano_adm = Right(data_adm, 2)

Até aí tudo bem, mas quando eu escolho um mes que seja menor do que 10 o banco retira o 0 a esquerda do numero
Ex.:
ao invse de ficar

0998 (setembro de 1998)
ele fica 998 , e dessa maneira nao dá pra capturar o mes corretamente.

alguem saberia me dizer como faço para colocar o zero a esquerda no BD?? SQL SERVER 2005

grato

#2 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 05/06/2009, 12:24

Você pode fazer if pra verificar se existe o tal zero, mas o problema é que você está trabalhando com datas com varchar, e isso desperdiça tempo de processamento.

Seria interessante você trabalhar com o date. Ele já foi feito pra isso, e tem uma série de funções pra trabalhar com esse tipo de variável.

/*DS*/
Não sabe por onde começar? Que tal pelas Regras ?

#3 Gabriel2ny

Gabriel2ny

    Normal

  • Usuários
  • 107 posts
  • Sexo:Masculino

Posted 05/06/2009, 16:20

Boa tarde D.S.

A aplicação já está rodando e tem mais de 3.000 usuarios inscritos nessa tabela, além disso outras páginas fazem consulta a essa tabela. Estou dando continuidade no trabalho de um outro programador que saiu.

Verifiquei no banco e nao está sendo salvo com o zero a esquerda.
Mas está sendo enviado com o zero a esquerda. o Banco que ta tirando o zero..

ja teve esse tipo de problema??

#4 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 05/06/2009, 16:24

Preciso que poste o codigo de inserção no banco, pra averiguar como estão chegando as variaveis ao BD.

Já tive esse problema sim, quando nao sabia do formato Date.

/*DS*/
Não sabe por onde começar? Que tal pelas Regras ?

#5 _zEek_

_zEek_

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado
  • Localidade:MS

Posted 06/06/2009, 11:02

Amigo uma forma fácil é você resolver isso, é alterar o tipo de campo ao invés de " int(4) " para "varchar(4)", isso vai tranformar o campo em texto e em texto pode ter zero a esquerda, no Mysql tem uma opção "zerofill" que deixa os Zero a esquerda no Sql server não sei =S

#6 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 23/06/2009, 15:34

Não recomendo o uso de varchar para campos de data. A menos que esteja pensando em usar algumas expressões regulares pra separar os dados :assobio:

/*DS*/
Não sabe por onde começar? Que tal pelas Regras ?

#7 Desenvolvedor Web

Desenvolvedor Web

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 04/08/2009, 15:40

Cara, faz assim:

if len(data_adm) < 4 then
data_adm = "0"& data_adm
end if

Depois segue o fluxo normal, ou seja:

mes_adm = Left(data_adm,2)
ano_adm = Right(data_adm, 2)

Assim dará certo, pois a data_adm sempre terá 4 caracteres.

Abs.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq