![]() |
Re: [Firebird] TimeStamp Problem
Gruppiere mal nicht auf den kompletten Timestamp, sondern auf Minuten
|
Re: [Firebird] TimeStamp Problem
Hallo mkinzler,
und wie? Bis bald Chemiker |
Re: [Firebird] TimeStamp Problem
SQL-Code:
...
group by Extract( Date from MW_DATUMUHRZEIT), Extract( Hour from MW_DATUMUHRZEIT), Extract( Minute from MW_DATUMUHRZEIT) ... |
Re: [Firebird] TimeStamp Problem
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo mkinzler,
habe Deinen Vorschlag mal versucht umzusetzen allerdings bekomme ich immer eine Fehlermeldung. siehe Anhang Bis bald Chemiker |
Re: [Firebird] TimeStamp Problem
Versuchs mal so in der Richtung :
SQL-Code:
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. :mrgreen: Poste doch mal zusammenhängend die Table-Struktur, oder zumindest das betreffende Feld und das Select-Statement als Nicht-JPG, sondern Text. :duck:
group by Extract (HOUR FROM cast(Uhrzeit AS TIMESTAMP))
|
Re: [Firebird] TimeStamp Problem
... zwar etwas unscharf, aber kann es an unterschiedlichen Spacheinstellungen auf beiden Systemen (FB-Servern) liegen?
|
Re: [Firebird] TimeStamp Problem
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:
In Delphi wird die Abfrage dann so zusammengesetzt:
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.2009' and '15.08.2009') group by DatumUhrzeit
Delphi-Quellcode:
Ich habe jetzt zwar eine Lösung, aber es ist immer noch unklar wodurch das Problem entstanden ist.
{
******************************************************************************** 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; Trotzdem danke an alle für die Tipps. Bis bald Chemiker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz