将日期插入SQLite数据库

时间:2014-02-04 11:42:01

标签: sqlite delphi delphi-xe4

作为参数化查询的一部分,我试图从plannerCalendar插入日期。

Params.ParamByName('D').AsDate := JulianDateToDateTime(PlannerCalendar1.Date);

这不起作用。

任何想法?

编辑:

即使是简单的日期插入也无效:

with ClientdataSet1 do
begin
Close;
CommandText :='';
CommandText :='INSERT INTO TLOG (DATE) VALUES (:D)';
Params.ParamByName('D').Value :=  Plannercalendar1.Date;
Execute;

我明白了:

enter image description here

当我这样做时(只是为了测试):

CommandText :='INSERT INTO TLOG (DATE) VALUES (date(julianday("now", "LOCALTIME")))';

插入日期。

当我使用它时(看起来很有希望):

Params.ParamByName('D').Value := DateTimeToJulianDate(Plannercalendar1.Date);

在数据库中插入的日期是正常的,但cxgrid显示日期有趣(下图):

Funny date display in the cxgrid

更改参数也无济于事。

  

VALUES(julianday(:D),

如果我在数据库中将DATE字段更改为CHAR,则为:

DateToStr(Plannercalendar1.Date);

正常工作....

1 个答案:

答案 0 :(得分:0)

我将日期时间存储在SQL时间戳中:

SomeQuery.ParamByName('PARAM').AsSQLTimeStamp := DateTimeToSQLTimeStamp(Now);
SomeDateTime := SQLTimeStampToDateTime(SomeQuery.ParamByName('PARAM').AsSQLTimeStamp);

Data.SqlTimSt 单元:

查看此功能

DateTimeToSQLTimeStamp

SQLTimeStampToDateTime