![]() |
Datenbank: MariaDB • Version: 10.1.13 • Zugriff über: Firedac
Problem mit Timestamp Millisekunden
Wir haben in einer Tabelle ein Feld vom Typ Timestamp in der auch Millisekunden zweistellig gespeichert werden (also Länge 2).
Wenn wir nun aus Delphi über Firedac diese Tabelle öffnen wollen (select ...) führt es zu einem Fehler weil die Millisekunden nicht erwartet werden. Fehler: "Wert in [00 ??] ist ausserhalb des gültigen Bereichs des Datentyps [Cardinal]" Engine ist InnoDB. Was machen wir falsch? Danke im Vorraus für eure Hilfe. |
AW: Problem mit Timestamp Millisekunden
Auch wenn auf der Datenbank Timestamp durch DateTime ersetzt wird und Millisekunden abspeichert werden so führt das beim Öffnen über Firedac zum gleichen Fehler.
Werden keine Millisekunden gespeichert ist alles ok. |
AW: Problem mit Timestamp Millisekunden
Keine Ahnung ob es jetzt daran liegt vielleicht speicherst du die Ms falsch ab?
00.00 <> 00,00 ? prüfe das mal bitte. gruss |
AW: Problem mit Timestamp Millisekunden
Also...wenn ich mir
![]() |
AW: Problem mit Timestamp Millisekunden
Zitat:
Deshalb mein vorheriger Post. gruss |
AW: Problem mit Timestamp Millisekunden
Es ist keine Sache der Datenbank, die kann es:
A timestamp in the format YYYY-MM-DD HH:MM:SS. Microseconds with a range of 0 to 6 can also be specified. If not specified, 0 is used. Ich kann das auch wunderbar über Heidisql abfragen/anzeigen. Nur der Versuch die Tabelle für eine Querry über Firedac zu öffnen scheitert. Vielleicht kann das jemand nachvollziehen? |
AW: Problem mit Timestamp Millisekunden
Quelltext der fraglichen Stelle?
Oder lieber :glaskugel: Oder Createstatement der Tabelle bzw. den Teil, in dem die Timestamp-Spalte definiert ist. Naja, die Fehlermeldung lässt darauf schließen, dass da irgendwo ein falscher Type genutzt wird. Cardinal kann nunmal keine Nachkommastellen. Und wenn FireDac Timestamp als Sekunden seit 1.1.1970 interpretiert, dann ist das so auch richtig. ![]() ![]() |
AW: Problem mit Timestamp Millisekunden
Auszug aus dem CREATE Table Statement der Tabelle:
CREATE TABLE `regal` ( ..., `WANNAEND` TIMESTAMP(2) NOT NULL DEFAULT CURRENT_TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2), ...) Den Feldtypen lassen wir von FireDAC selbst automatisch ermitteln. Dieser ist nunmal, ob mit oder ohne Precision beim timestamp-Feld, stets "TSQLTimeStampField" In diesem haben wir nichts gefunden, womit man die Anzahl der "Fractions" (Millisekunden) festlegen könnte. Wenn man den Feldtyp selbst wählt, bleibt einem auch kaum keine Alternative. |
AW: Problem mit Timestamp Millisekunden
Das Data Type-Mapping hilft da auch nicht weiter?
|
AW: Problem mit Timestamp Millisekunden
Mit ner MySQL 5.7.17 funktioniert es auf jeden Fall ohne irgendwelche Anpassungen, da steht der richtige Wert in Fractions - scheint also nen MariaDB spezifisches Problem zu sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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