AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

yyyy-mm-dd nach dd.mm.yyyy

Ein Thema von CalganX · begonnen am 19. Feb 2003 · letzter Beitrag vom 19. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

yyyy-mm-dd nach dd.mm.yyyy

  Alt 19. Feb 2003, 16:28
Hi,
ich bekomme aus einer Datebank ein Datum im Format yyyy-mm-dd. Wie bekomme ich das jetzt nach dd.mm.yyyy?
Mit StrToDateTime geht es leider nicht (sei nicht gültig und so'n Mist)...
Was für Alternativen gibt es?

Chris
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 19. Feb 2003, 16:33
Ich nehme an, es ist eine SQL-Datenbank (MySQL??). Wenn ja, dann schau dir mal die MySQL-Funktionen DAYOFMONTH(), MONTH() und YEAR an. Damit kannst du die einzelnen Datumselemente einzeln abrufen.
Oder du teilst den String mit Copy so auf, wie du ihn brauchts.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3
  Alt 19. Feb 2003, 16:35
Hm...
Geht das nicht auf Delphi-Art? Denn ich bin froh, dass ich gerade erstmal überhaupt was aus der Datebank herausbekomme...

Chris
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 19. Feb 2003, 16:41
Hehe. Klar geht das auch in Delphi. Ein DATE-Eintrag ist ein String, der, wie du gesagt hast nach dem Muster YYYY-MM-DD aufgebaut ist, also immer mit den gleichen Längen für die einzelnen Elemente.
Mit Copy geht es so:
Delphi-Quellcode:
var
  buf, date: String;
  year, month, day: Integer;
begin
  //date sei 2003-02-19
  buf := Copy(date,1,4);
  year := StrtoInt(buf);
  buf := Copy(date,6,2);
  month := StrtoInt(buf);
  buf := Copy(date,9,2);
  day:= StrtoInt(buf);
end;
Ein Beispiel für den Verbindungaufbau (siehe andere Thread) schreib ich dir, sobald ich geduscht hab.

Nachtrag. Ich sehe gerade, dass es auch mit StrtoDate gehen könnte. Du musst nur (wie in der Beschreibung erwähnt) die Variablen DateSeparator und ShortDateFormat auf die richtigen Werte setzen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
S.Krug

Registriert seit: 28. Okt 2002
6 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 19. Feb 2003, 16:41
Schon mal mit der Funktion FormatDate('dd.mm.yyyy', XXX) probiert?
Sebastian Krug
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6
  Alt 19. Feb 2003, 16:46
FormatDate gibt es nicht!
@Chewie: werde ich gleich mal ausprobieren. Sollte aber funktionieren, so wie ich das sehe...

Chris
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 19. Feb 2003, 16:48
Das funktioniert auf jeden Fall. Es kann höchtens sein, dass die Anfangszahlen (zweiter Parameter) eins zu hoch oder zu niedrig sind. Aber das wirst du dann merken und wohl auch beheben können
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
S.Krug

Registriert seit: 28. Okt 2002
6 Beiträge
 
Delphi 7 Enterprise
 
#8
  Alt 19. Feb 2003, 16:51
Mein Fehler die Funktion heißt natürlich: FormatDateTime!
Sebastian Krug
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#9
  Alt 19. Feb 2003, 16:52
So, angepasst und: Funktioniert! Danke!

Übrigens: die Parameter stimmten alle...

@S.Krug: hat sich jetzt auch erledigt. Trotzdem danke!

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#10
  Alt 19. Feb 2003, 16:57
Zitat von Chakotay1308:
Hm...
Geht das nicht auf Delphi-Art? Denn ich bin froh, dass ich gerade erstmal überhaupt was aus der Datebank herausbekomme...
Chris
Hai Chris,

ich würde möglichst immer versuchen das Ergebniss der Datenbankabfrage an deine Bedürfnisse anzupassen.

Stelle dir vor in der nächsten Version des SQL-Servers werden die Daten auf einmal in einem anderen Format zurück gegeben. Dann müsstest Du alle stellen in deinem Programm ändern in denen Du mit dem Datum arbeitest.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz