FireDACでSQLiteの日付型を扱うには

SQLiteデータベースには日付型がありません。
FireDACには日付をうまく扱う仕組みが用意されています。

日付型のデータ表現を設定する

FireDAC接続エディタで日付型をどのようにデータベースに登録するかを設定できます。

「定義」タブの「DateTimeFormat」で「String」「Binary」「DateTime」から日付型の扱い方を選択します。

FDConnection00

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください