AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datum auslesen und intern auswerten
Thema durchsuchen
Ansicht
Themen-Optionen

Datum auslesen und intern auswerten

Ein Thema von torud · begonnen am 7. Sep 2004 · letzter Beitrag vom 7. Sep 2004
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Datum auslesen und intern auswerten

  Alt 7. Sep 2004, 10:30
Hallo Wissende!

Leider fehlt mir mal wieder eine richtig gute Idee, wie ich eine kleine einfache Aufgabe umsetzen kann. Ich habe eine kleine DB, in der sich ein Feld für Datumsangaben befindet. Dieses Feld wird so befüllt: tt.mm.jj! Nun möchte ich eine kleine statistische Auswertung machen indem ich die Tage eines jeden Monats zusammenfasse. Ich will also die Datensätze jedes Monats mit einer bestimmten Routine durchlaufen, weiss aber einfach nicht, wie ich da ansetzen soll.

Soweit bin ich derzeit.

Delphi-Quellcode:
for i:=0 to Table1.RecordCount-1 do
  begin
    akt_date:= Table1.FieldValues['date'] as DATE_SHORTDATE
    // und hier dann die auswertung das datums
    // ich will prüfen, von ewlchem monat der eintrag ist und einfach ein feld names "betrag"
    // addieren
    // ungefähr so:
    if akt_date = akt_Monat then
      begin
        akt_betrag:=Table1.FieldbyName('betrag') as integer;
        akt_Summe:=akt_summe + akt_betrag
  end;
Ich weiss halt nicht, wie ich am einfachsten den Monat aus dem Jahr herauslöse, wobei mir der Monat nur solange was nützt, wie das Jahr gleich bleibt. Da ich aber diese Daten archivarisch verwalten muss, müsste ich also Monat und Jahr schon richtig prüfen.

NUR WIE?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

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

Re: Datum auslesen und intern auswerten

  Alt 7. Sep 2004, 10:33
Kuck dir mal die Funktion DecodeDate an, dir zerlegt dir ein Datum in 3 Word Variablen Year, Month und Day.

Aber dein Vorhaben ließe sich, je nach verwendeter Datenbank, auch elleganter direkt über SQL lösen.

Gruß,
Tom
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: Datum auslesen und intern auswerten

  Alt 7. Sep 2004, 10:42
Hallo,

das beste wäre wohl die gute alte Unixzeit in der Datenbank abzuspeichern, oder gleich das Datum in Rohform. Sobald du nämlich ein in Delphi gültiges Datum von TDate oder TDateTime hast kannst du mit der Funktion MonthOf (Unit DateUtils) den Monat extrahieren. Ansonsten könntest du - falls du mit einem String als Datum arbeiten willst - auch eine Funktion schreiben die, da das Format ja immer gleich ist, einfach Zeichen 3 bis 5 extrahiert. Das wäre dann der Monat.
Ich empfehel dir nciht die verwendung von den Delphifuntionen DateToStr und StrToDate. Das Problem ist, dass diese Funktionen das Systemdatumsformat verwenden und dir dadurch immer andere "Daten" anzeigen können. Du kannst diesen Funktionen allerdings einen TFormatSettings Parameter übergeben, in den du auch das ShortTimeFormat eintragen kannst. Das würde ich dir auf jeden Fall empfehlen!

moritz
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:01 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