Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   datediff im grid (https://www.delphipraxis.net/185836-datediff-im-grid.html)

khh 10. Jul 2015 10:12

datediff im grid
 
hallo zusammen
Delphi-Quellcode:
datediff(minute,arbeitsbeginn,arbeitsende )as zeit
  from    arbeitszeiten
funktioniert.
Die Zeit wird mir als Minutenwert angezeigt.

Das Feld lässt sich aber nicht formatieren
Setze ich DisplayFormat von TColumn im DBGRid auf HH:mm mir im Feld "HH:mm" angezeigt


Was läuft da falsch ?

Muss ich das noch ins Datumsformat casten? wenn ja wie ?

Ich danke euch

rokli 10. Jul 2015 10:56

AW: datediff im grid
 
Hallo khh,

wenn Du es im (MS) SQL CASTEN willst, dann könntest Du das so machen:

CONVERT(CHAR(8), Datum, 114)

Hierbei heißt der CAST dann CONVERT 8-) , wobei der erste Parameter der Typ des Ergebnis ist, (CHAR(8), der 2. Parameter ist Dein DB-Feld, dass du umwandelt willst und der letzte Parameter drückt aus, dass es sich um eine Uhrzeit im Format hh:mm:ss:mmm im 24 Stunden Format ist.

Damit kann man auch Datums-Formate erzeugen, z. B. Parameter 104 ergibt tt.mm.jjjj bei einer Länge von CHAR(10). Der Rückgabewert ist dann allerdings ein String, und kein Datum- /Zeitwert mehr.


Gruß
Rolf

BadenPower 10. Jul 2015 11:10

AW: datediff im grid
 
Zitat:

Zitat von khh (Beitrag 1308295)
Das Feld lässt sich aber nicht formatieren
Setze ich DisplayFormat von TColumn im DBGRid auf HH:mm mir im Feld "HH:mm" angezeigt

Dann hast Du im Objektinspektor die Property "DisplayFormat" wahrscheinlich so gesetzt:
Code:
'HH:mm'
anstatt so:
Code:
HH:mm

khh 10. Jul 2015 11:35

AW: datediff im grid
 
convert kennt firebird wohl nicht
BadenPower, nein die Formatierung wurde nicht in '' übegeben :-(

mkinzler 10. Jul 2015 11:43

AW: datediff im grid
 
Zitat:

convert kennt firebird wohl nicht
Aber CAST()

khh 10. Jul 2015 11:48

AW: datediff im grid
 
@mkinzler

Code:
select cast(arbeitsende - arbeitsbeginn as time)
  from   arbeitszeiten
bringt mir :
overflow occurred during data type conversion
conversion error from string '0,333333'

mkinzler 10. Jul 2015 11:51

AW: datediff im grid
 
SQL-Code:
select
  cast(datediff(minute,arbeitsbeginn,arbeitsende) as char(8)) as zeit
from  
  arbeitszeiten;

khh 10. Jul 2015 12:05

AW: datediff im grid
 
jetzt hab ich die Zeit in Minuten, ich danke dir,

aber die Formatierung HH:mm im grid wird einfach ignoriert.

Kann ich das in der Query noch irgendwie in std und min umwandeln?

mkinzler 10. Jul 2015 12:28

AW: datediff im grid
 
Zitat:

Kann ich das in der Query noch irgendwie in std und min umwandeln?
Könnte man mit DIV und MOD des mit DATEDIFF erzeugtem Wertmachen; die Frage ist aber ob es sinnvoll ist. GGf. besser bei der Anzeige machen (notfalls im OnGetText der TField-Instanz)

BadenPower 10. Jul 2015 12:32

AW: datediff im grid
 
Zitat:

Zitat von khh (Beitrag 1308308)
aber die Formatierung HH:mm im grid wird einfach ignoriert.

Weil Dein Datentyp nicht ftDateTime,ftDate oder ftTime ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr.
Seite 1 von 5  1 23     Letzte »    

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