Inverter datas

Delphi

26/09/2005

Olá, tenho varias tabelas onde a data esta invertida, Ex. 20050714 como devo fazer para alterar para o padrao 14.07.2005 tenho em torno de 100 tabelas onde variam de 10.000 a 800.000 registros cada uma e as mesmas estao armazenadas no firebird, as datas estao assim porque fiz uma conversao de base cobol para interbase...


Obrigado!!


Dberlese

Dberlese

Curtidas 0

Respostas

Dberlese

Dberlese

26/09/2005

sobe


GOSTEI 0
Massuda

Massuda

26/09/2005

eu não entendo muito de BD, mas talvez isso ajude os colegas...

Você vai criar um novo campo para receber a data no ´formato padrão´?

Se for usar um novo campo, qual seria o tipo dele?


GOSTEI 0
Martins

Martins

26/09/2005

Olá, tenho varias tabelas onde a data esta invertida, Ex. 20050714 como devo fazer para alterar para o padrao 14.07.2005 tenho em torno de 100 tabelas onde variam de 10.000 a 800.000 registros cada uma e as mesmas estao armazenadas no firebird, as datas estao assim porque fiz uma conversao de base cobol para interbase... Obrigado!!


Qual banco vc tá utilizando? De q tipo é o campo?


GOSTEI 0
Dberlese

Dberlese

26/09/2005

Estou usando o FireBird e o campo no momento esta VARCHAR(8) Gostaria de um exemplo de como montar um comando onde peço para inverter as datas!! onde elas estão assim: Ex. 20050714 e gostaria que ficasse 14/07/2005 como são muitos registros se tivesse uma forma automatica, um loop....

Obrigado!!


GOSTEI 0
Rjun

Rjun

26/09/2005

Você vai criar um novo campo do tipo data ou esse mesmo campo varchar é que vai receber a data invertida?


GOSTEI 0
Martins

Martins

26/09/2005

Estou usando o FireBird e o campo no momento esta VARCHAR(8) Gostaria de um exemplo de como montar um comando onde peço para inverter as datas!! onde elas estão assim: Ex. 20050714 e gostaria que ficasse 14/07/2005 como são muitos registros se tivesse uma forma automatica, um loop.... Obrigado!!

Interessante...

Você vai criar um novo campo do tipo data ou esse mesmo campo varchar é que vai receber a data invertida?


Essa informação é importante.

Agora se for só para inverter a data e colocar em um campo [b:865bb008ac]varchar[/b:865bb008ac], vc poderia fazer assim:
var
  b: String;
begin
  with Table1 do
   try
   While Not Eof Do
    begin
      Edit;
      b:=  FieldByName(´OldData´).AsString;
      FieldByName(´NewData´).AsString :=  (Copy(b,7,2)+´/´+Copy(b,5,2)+´/´+Copy(b,1,4));
      Post;
      next;
    end;
   finally
    Refresh;
    First;
  end;
end;


Espero q possa lhe ser útil!!!

Martins


GOSTEI 0
Dberlese

Dberlese

26/09/2005

var
  b: String;
begin
  with Table1 do
   try
   While Not Eof Do
    begin
      Edit;
      b:=  FieldByName(´OldData´).AsString;
      FieldByName(´NewData´).AsString :=  (Copy(b,7,2)+´/´+Copy(b,5,2)+´/´+Copy(b,1,4));
      Post;
      next;
    end;
   finally
    Refresh;
    First;
  end;
end;



Era realmente oq eu estava precisando, funcionou perfeitamente, Muito Obrigado!!!

Danilo


GOSTEI 0
Martins

Martins

26/09/2005

var
  b: String;
begin
  with Table1 do
   try
   While Not Eof Do
    begin
      Edit;
      b:=  FieldByName(´OldData´).AsString;
      FieldByName(´NewData´).AsString :=  (Copy(b,7,2)+´/´+Copy(b,5,2)+´/´+Copy(b,1,4));
      Post;
      next;
    end;
   finally
    Refresh;
    First;
  end;
end;
Era realmente oq eu estava precisando, funcionou perfeitamente, Muito Obrigado!!! Danilo


[b:a930d4b08d]Danilo[/b:a930d4b08d], disponha, estamos aqui para tentar ajudar os colegas, se estiver ao nosso alcance, tentaremos contribuir.

Boa Sorte!!!!


GOSTEI 0
Rjun

Rjun

26/09/2005

Você também poderia usar um comando SQL.

UPDATE 
  Tabeta
SET 
  Campo = SUBSTRING(Campo FROM 7 FOR 2) + SUBSTRING(Campo FROM 5 FOR 2) + SUBSTRING(Campo FROM 1 FOR 4)



GOSTEI 0
Martins

Martins

26/09/2005

Você também poderia usar um comando SQL.
UPDATE 
  Tabeta
SET 
  Campo = SUBSTRING(Campo FROM 7 FOR 2) + SUBSTRING(Campo FROM 5 FOR 2) + SUBSTRING(Campo FROM 1 FOR 4)


Interessante, vou testar essa instrução!


GOSTEI 0
POSTAR