Вставьте дату в базу данных SQLite

В рамках параметризованного запроса я пытаюсь вставить дату из 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;

Я получил:

введите описание изображения здесь

Когда я делаю это (только для проверки):

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

Дата вставляется.

Когда я использую это (выглядит многообещающе):

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

Дата, вставленная в базу данных, в порядке, но cxgrid отображает смешную дату (ниже):

Забавный показ даты в cxgrid

Изменение параметра тоже не помогает.

ЦЕННОСТИ (julianday(:D),

Если я изменю поле DATE на CHAR в базе данных, то:

DateToStr(Plannercalendar1.Date);

работает правильно....

1 ответ

Я храню дату и время в метках времени SQL:

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

Взгляните на эти функции из блока Data.SqlTimSt:

DateTimeToSQLTimeStamp

SQLTimeStampToDateTime

Другие вопросы по тегам