Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Datumsformat in DB ändern von 04 nach 20004

  Alt 13. Apr 2006, 21:32
Also bei DBase ist glaub ich nicht viel mit einem direktem SQL Befehl um die besagte Spalte zu verändern. Rezentere DB Systeme bieten auch Stringbehandlungsroutinen mit, damit wärs einfacher. So bleibt dir wohl nix anderes übrig, also das Datensatz für Datensatz zu lösen. Wichtig dabei ist aber, dass du lediglich mit Strings arbeitest, weil Du ja nicht auf TimeStamp umsteigen kannst.

Hier mal ein Schnippsel, allerdings ungetestet:

Delphi-Quellcode:
procedure TForm1.btn_set_dateClick(Sender: TObject);
var
  oldDate, newDate : string ;
begin
    with Table1 do
      First ;
      begin
        while not Eof do
          begin
            edit;
            oldDate := FieldByName('date').AsString ;
            try
               dd := StrToInt(copy(oldDate,1,2)) ;
               mm := StrToInt(copy(oldDate,4,2)) ;
               yy := StrToInt(copy(oldDate,7,2)) ;
            except
               raise exception.create (oldDate + ' konnte nicht ins neue Format konvertiert werden') ;
            end ;
            if yy >= 70 // ab 1970 berücksichtigt. Älter wird als 2069 interpretiert
            then yy := 1900 + y
            else yy := 2000 + y ;
            FieldValues['date'] := FormatDateTime ('dd.mm.yyyy',EncodeDate (yy,mm,dd)) ;
            post;
            Next;
          end
      end
end;
  Mit Zitat antworten Zitat