Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit Date in SQLite3 und Firedac (https://www.delphipraxis.net/191071-problem-mit-date-sqlite3-und-firedac.html)

Fritzew 5. Dez 2016 17:18

AW: Problem mit Date in SQLite3 und Firedac
 
Tja habe jetzt noch etwas "herumgespielt "
Neue Datenbank angelegt mit 1 Tabelle

Code:
CREATE TABLE [Test](
    [ID] INTEGER PRIMARY KEY NOT NULL,
    [DATE2] DATETIME
  );
Code:
Select DATE2
from Test

where DATE2 <= CURRENT_DATE
funktioniert mit Firedac nicht.
Ohne den Vergleich geht es.

Ghostwalker 5. Dez 2016 18:11

AW: Problem mit Date in SQLite3 und Firedac
 
Sieht so danach aus als hätte Firedac da wohl ein Problem.

Probier in deinem Test doch mal folgende Variante:

Delphi-Quellcode:
Select DATE2
from Test

where NOT (DATE2 > CURRENT_DATE )

bra 6. Dez 2016 09:51

AW: Problem mit Date in SQLite3 und Firedac
 
Als was wird die Date2-Spalte denn in der SQLite-Datenbank erstellt? SQLite hat selbst keinen Date/Datetime-Typ.

Fritzew 6. Dez 2016 11:23

AW: Problem mit Date in SQLite3 und Firedac
 
Hallo
Zitat:

Als was wird die Date2-Spalte denn in der SQLite-Datenbank erstellt? SQLite hat selbst keinen Date/Datetime-Typ.
Die Spalte ist als DATE deklariert.

Habe jetzt eine Lösung gefunden

Code:
Anstatt CURRENT_DATE benutze ich Date('now')
daß funktioniert

himitsu 6. Dez 2016 11:39

AW: Problem mit Date in SQLite3 und Firedac
 
SQLite kann DateTimes in verschiedenen Formaten darstellen (hatte hier schon wer verlinkt).

SQL-Code:
SELECT CURRENT_DATE, Date('now')

Was kommen hier denn für Feldtypen bei raus?
Eventuell benötigt man für Vergleiche die selben internen Typen.

Fritzew 6. Dez 2016 12:15

AW: Problem mit Date in SQLite3 und Firedac
 
Zitat:

Zitat von himitsu (Beitrag 1355470)
SQLite kann DateTimes in verschiedenen Formaten darstellen (hatte hier schon wer verlinkt).

SQL-Code:
SELECT CURRENT_DATE, Date('now')

Was kommen hier denn für Feldtypen bei raus?
Eventuell benötigt man für Vergleiche die selben internen Typen.

Das dürfte das Problem sein,

CURRENT_DATE liefert einen Double
DATE('now') einen String

Habe jetzt noch mal in der Documentation zu SQlite nachgelesen,
ist wohl tatsächlich so dass man sich auf einen Typ für Datetime und Co innerhalb einer DB festlegen sollte.

Und dann dem entsprechend die passenden functionen benutzt.
Das "versteckt" Firedac denke ich zu gut.....


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
Seite 2 von 2     12   

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