AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [Firebird] TimeStamp Problem
Thema durchsuchen
Ansicht
Themen-Optionen

[Firebird] TimeStamp Problem

Ein Thema von Chemiker · begonnen am 28. Aug 2009 · letzter Beitrag vom 4. Nov 2009
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: [Firebird] TimeStamp Problem

  Alt 29. Aug 2009, 11:39
Gruppiere mal nicht auf den kompletten Timestamp, sondern auf Minuten
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: [Firebird] TimeStamp Problem

  Alt 29. Aug 2009, 16:43
Hallo mkinzler,

und wie?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: [Firebird] TimeStamp Problem

  Alt 29. Aug 2009, 16:45
SQL-Code:
...
group by
    Extract( Date from MW_DATUMUHRZEIT),
    Extract( Hour from MW_DATUMUHRZEIT),
    Extract( Minute from MW_DATUMUHRZEIT) ...
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: [Firebird] TimeStamp Problem

  Alt 4. Nov 2009, 01:30
Hallo mkinzler,

habe Deinen Vorschlag mal versucht umzusetzen allerdings bekomme ich immer eine Fehlermeldung. siehe Anhang

Bis bald Chemiker
Miniaturansicht angehängter Grafiken
sql-fehlermeldung_588.jpg  
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#15

Re: [Firebird] TimeStamp Problem

  Alt 4. Nov 2009, 02:21
Versuchs mal so in der Richtung :

group by Extract (HOUR FROM cast(Uhrzeit AS TIMESTAMP)) Leider zu spät gesehen, um jetzt noch das JPG abzutippen, zu ändern und zu testen. *gääähhnnnhn* Für den Thread komplett neu zu lesen auch zu spät. Poste doch mal zusammenhängend die Table-Struktur, oder zumindest das betreffende Feld und das Select-Statement als Nicht-JPG, sondern Text.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: [Firebird] TimeStamp Problem

  Alt 4. Nov 2009, 12:49
... zwar etwas unscharf, aber kann es an unterschiedlichen Spacheinstellungen auf beiden Systemen (FB-Servern) liegen?
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: [Firebird] TimeStamp Problem

  Alt 4. Nov 2009, 20:16
Hallo,

ich habe jetzt eine Lösung gefunden. Ist wahrscheinlich nicht die eleganteste Methode, aber bringt das gewünschte Ergebnis.

Eigentlich ziemlich Aufwendig nur um den TimeStamp auseinander zu nehmen und anschließend ohne Sekunden-Anteil wieder zusammenzusetzen.



Mit:
SQL-Code:
select cast(EXTRACT (DAY FROM MW_DATUMUHRZEIT) ||'.'||
            EXTRACT (Month FROM MW_DATUMUHRZEIT)||'.'||
            EXTRACT (year from MW_DATUMUHRZEIT) ||' '||
            EXTRACT (hour from MW_DATUMUHRZEIT) ||':'||
            EXTRACT (minute from MW_DATUMUHRZEIT)as timeStamp) as DatumUhrzeit,
       SUM (IIF (MW_MSID = 'K01T1', MW_MW,0)) as K01T1,
       SUM (IIF (MW_MSID = 'K01D1', MW_MW,0)) as K01D1
From mw_tabelle
where (MW_DatumUhrZeit between '14.08.2009and '15.08.2009')
group by DatumUhrzeit
In Delphi wird die Abfrage dann so zusammengesetzt:

Delphi-Quellcode:
{
********************************************************************************
SQL-String für die Pivot-Tabelle in einer Stringlist zusammenstellen
********************************************************************************
}

procedure TAbtfrageClass.SQLPrivoString;
var
  I: Integer;
begin
  FSQLPivot.Clear;
  with FSQLPivot do
  begin
   { Select Anweisung alt ersetzt am 05.11.2009
    Add('SELECT MW_DATUMUHRZEIT, ');
    for I := 0 to FMSListe.Count-1 do
    begin
      Add('  SUM (IIF (MW_MSID = ');
      Add(''''+FMSListe[i]+'''');
      Add(', MW_MW,0)) AS ');
      Add(FMSListe[i]);
      if i < FMSListe.Count-1 then
      begin
        Add(',');
      end;
    end;
    Add('FROM mw_tabelle  ');
    Add('WHERE (MW_MSID LIKE '); // :aMSId
    Add('''%''');
    Add(')');
    Add(' AND (MW_DATUMUHRZEIT between ');
    Add(' :aStartDatum');
    Add(' AND ');
    Add(' :aEndeDatum)');
    Add(' group by MW_DATUMUHRZEIT');
   }

   // Am 04.11.2009 überarbeitete Abfrage nun jede Minute in eine Zeile
    Add('SELECT cast (EXTRACT (DAY FROM MW_DATUMUHRZEIT) ');
    Add('||');
    Add('''.''');
    Add('||');
    Add(' EXTRACT (Month FROM MW_DATUMUHRZEIT) ');
    Add('||');
    Add('''.''');
    Add('||');
    Add(' EXTRACT (year FROM MW_DATUMUHRZEIT) ');
    Add('||');
    Add(''' ''');
    Add('||');
    Add(' EXTRACT (hour FROM MW_DATUMUHRZEIT) ');
    Add('||');
    Add(''':''');
    Add('|| ');
    Add(' EXTRACT (minute FROM MW_DATUMUHRZEIT)');
    Add('as TimeStamp) as DatumUhrzeit, ');
    for I := 0 to FMSListe.Count-1 do
    begin
      Add(' SUM (IIF (MW_MSID = ');
      Add(''''+FMSListe[i]+'''');
      Add(', MW_MW,0)) AS ');
      Add(FMSListe[i]);
      if i < FMSListe.Count-1 then
      begin
        Add(',');
      end;
    end;
    Add('FROM mw_tabelle ');
    Add('WHERE (MW_DATUMUHRZEIT between ');
    Add(' :aStartDatum');
    Add(' AND ');
    Add(' :aEndeDatum)');
    Add(' group by DatumUhrzeit');
  end;
end;
Ich habe jetzt zwar eine Lösung, aber es ist immer noch unklar wodurch das Problem entstanden ist.

Trotzdem danke an alle für die Tipps.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:20 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