SQLiteデータベースには日付型がありません。
FireDACには日付をうまく扱う仕組みが用意されています。
日付型のデータ表現を設定する
FireDAC接続エディタで日付型をどのようにデータベースに登録するかを設定できます。
「定義」タブの「DateTimeFormat」で「String」「Binary」「DateTime」から日付型の扱い方を選択します。
DateTimeFormatが「String」のとき
DateTimeFormatを「String」にすると、’yyyy-mm-dd hh24:mi:ss’ 形式の文字列としてデータベースに格納されます。
可読性の高い格納方法です。
例:DateTimeFormatを「String」にして次のコードを実行します。
FDQuery1.SQL.Text := 'insert into TBL1(DAY) values(:DAY)';
FDQuery1.ParamByName('DAY').AsDateTime := Now;
FDQuery1.ExecSQL;
次の値が保存されました。
2015-02-28 19:56:07.106
DateTimeFormatが「Binary」のとき
DateTimeFormatを「Binary」にすると、ユリウス日を表す実数として格納します。
例:DateTimeFormatを「Binary」にして次のコードを実行します。
FDQuery1.SQL.Text := 'insert into TBL2(DAY) values(:DAY)';
FDQuery1.ParamByName('DAY').AsDateTime := Now;
FDQuery1.ExecSQL;
次の値が保存されました。
42063.832531875
DateTimeFormatが「DateTime」のとき
DateTimeFormatを「DateTime」にすると、TDateTime 値を表す実数として格納します。
例:DateTimeFormatを「DateTime」にして次のコードを実行します。
FDQuery1.SQL.Text := 'insert into TBL3(DAY) values(:DAY)';
FDQuery1.ParamByName('DAY').AsDateTime := Now;
FDQuery1.ExecSQL;
次の値が保存されました。
2457082.33325122