Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: Fabio - Aprile 23, 2012, 04:20:47 pm

Titolo: TSQLQuery, SQLite e campi data
Inserito da: Fabio - Aprile 23, 2012, 04:20:47 pm
Ho una tabella di un SQLite3 con dei campi DATETIME.
Lazarus quando salva lo fa in maniera numerica, ad esempio il 15/06/1976 lo registra come 2442944.5

Fino a che leggo o modifico i campi ok, ma se voglio eseguire una query cercando di filtrare quel campo data non riesco a trovare come trasformare il valore da passare alla SQL della TSQLQuery.

Se uso il DateToStr non va che mi trasforma il numero in 15/06/1976 e la SQL ritorna zero risultati.

In giro ho visto che parlano che la data viene salvata nel suo formato Float, ma con un FloatToStr mi fa un 41075
Titolo: Re:TSQLQuery, SQLite e campi data
Inserito da: Stilgar - Aprile 23, 2012, 05:00:33 pm
Quello che conviene fare è utilizzare la funzione sqlite per le date (http://www.sqlite.org/lang_datefunc.html) se ti continua a dare problemi, visto che lanci una nuova query per filtrare. In questo modo lasci al motore decidere come comparare le date.
In ogni caso, assicurati che il formato della data che usi sia in formato americano (yyyy/mm/dd), a me in quel modo non ha mai creato problemi (vero anche che per SQLITE ho sempre usato ZEOS).
SQLITE converte in questo modo i dati http://www.sqlite.org/datatype3.html
Che componenti usi per connetterti a sqlite?
Titolo: Re:TSQLQuery, SQLite e campi data
Inserito da: Fabio - Aprile 23, 2012, 05:12:17 pm
Funziona grazie.
Uso SQLdb.