AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00
Thema durchsuchen
Ansicht
Themen-Optionen

DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

Ein Thema von Smiley · begonnen am 9. Jul 2022 · letzter Beitrag vom 11. Jul 2022
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#11

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 15:32
Dort steht nur "Date" als Typ.
Kann SQLite kein DateTime ? ich habe es aber im Create als DateTime angelegt.
Die Doku sagt dazu:
Zitat:
2.2. Date and Time Datatype
SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Date And Time Functions of SQLite are capable of storing dates and times as TEXT, REAL, or INTEGER values:

TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC.
Applications can choose to store dates and times in any of these formats and freely convert between formats using the built-in date and time functions.
Tatsache ist, dass das Feld als Date ankommt und nicht als DateTime. Warum das so ist, kann ich im Moment auch nicht sagen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 15:57
Gespeichert wird das Datum schon richtig mit Zeit, wie man im SQLiteSpy sieht, dort werden die Datumsangaben mit der richtigen Zeit angezeigt.

Etwas anderes noch mit der Formatangabe. Die Minuten werden mal mit mm und mal mit nn angegeben.
Selbst in DelphiBasics http://www.delphibasics.co.uk/RTL.as...formatdatetime wird es mal mit mm und nn angegeben.
nn = Minute number as 2 digits
LongTimeFormat = hh:mm:ss
Was ist denn nun richtig ?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#13

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 16:27
Gespeichert wird das Datum schon richtig mit Zeit, wie man im SQLiteSpy sieht, dort werden die Datumsangaben mit der richtigen Zeit angezeigt.
Allerdings steht dort auch als Typ "date" und FireDAC wandelt das in ein TDateField um. Vielleicht hilft es, wenn du beim Select das Feld explizit als DateTime castest.

Etwas anderes noch mit der Formatangabe. Die Minuten werden mal mit mm und mal mit nn angegeben.
Selbst in DelphiBasics http://www.delphibasics.co.uk/RTL.as...formatdatetime wird es mal mit mm und nn angegeben.
nn = Minute number as 2 digits
LongTimeFormat = hh:mm:ss
Was ist denn nun richtig ?
Formell korrekt ist hh:nn:ss (zur Unterscheidung vom Monat), aber die internen Routinen tolerieren auch ein hh:mm:ss. Letzteres ist wohl auch Windows geschuldet, das auf Anfrage genau dieses zurückgibt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#14

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 17:41
Was sagt denn FieldType/DataType?
Und gibt es bei FireDAC nicht auch irgendwo die inneren TypInfos, also das was das DBMS/Treiber dem FD für einen Typ nennt?
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 18:12
Danke Uwe für die klare Erklärung beim Timeformat.

Mit dem Casten im SQL habe ich etwas gefunden aber noch nicht richtig die Anwendung verstanden. Eventuell auch convert verwenden, da blick ich aber noch weniger durch.

So würde ich es machen nach dem was ich gelesen habe:
Code:
qKasse.SQL.Text := 'Select Nr,Name,EPreis,Menge,Frei,Rabatt,Summe,  cast(Datum AS DateTime) AS Datum,  Bemerkung from Kasse order by Datum Asc';
Hier bekomme ich aber die Meldung: ungültige Typumwandlung.

Kann da jemand helfen wie man das Datum als DateTime richtig casted im SQL Select ?
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 18:19
@himitsu
ich habe im FDConnection und Query folgendes gesetzt, das wirkt sich aber nicht aus.
Miniaturansicht angehängter Grafiken
fdcon.jpg   fdquery.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 19:04
Ich habe jetzt einen SQL String gefunden der mir Datum und Zeit anzeigt, aber im englischen format 2022-07-07 14:02:05.
Nachformatieren im GridInit bringt einen Typumwandlungsfehler.

Code:
  qKasse.SQL.Text := 'Select Nr,Name,EPreis,Menge,Frei,Rabatt,Summe, '+
                     'Datetime(Datum) AS Datum ,Bemerkung '+
                     'from Kasse order by Datum Asc';

Geändert von Smiley (10. Jul 2022 um 19:07 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#18

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 10. Jul 2022, 19:34
How the DateTime() Function Works in SQLite und dort nach strftime suchen.

Eventuell sowas? select strftime('%d.%m.%y %H:%M:%S', Datum) as Datum from tabelle
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 11. Jul 2022, 08:22
Danke Delphi.Narium für den Hinweis und den Link mit der hilfreichen Erklärung.
Aber ich weiß nicht wie ich strftime in meinen String einbinden soll.
Dies hier funktioniert nicht wegen der Hochkommas:
Code:
qKasse.SQL.Text := 'Select Nr,Name,EPreis,Menge,Frei,Rabatt,Summe, '+
                   'strftime('%d.%m.%y %H:%M:%S', Datum) as Datum ,Bemerkung '+
                   'from Kasse order by Datum Asc';
Mit
Code:
  qKasse.SQL.Text := 'Select Nr,Name,EPreis,Menge,Frei,Rabatt,Summe, '+
                     'Datetime(Datum) AS Datum ,Bemerkung '+
                     'from Kasse order by Datum Asc';
funktioniert das noch da hier keine Hochkommas verwendet werden.
Ansonsten wäre strftime Ideal für mich um eine beliebige Formatierung des DateTime Strings hinzubekommen.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#20

AW: DateTime Anzeige in DBGrid ist bei der Zeit 00:00:00

  Alt 11. Jul 2022, 08:37
Delphi-Quellcode:
qKasse.SQL.Text := 'Select Nr, Name, EPreis, Menge, Frei, Rabatt, Summe, ' +
                   'strftime(''%d.%m.%y %H:%M:%S'', Datum) as Datum, Bemerkung ' +
                   'from Kasse order by Datum Asc';
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:46 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