Вставьте дату в базу данных 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 отображает смешную дату (ниже):
Изменение параметра тоже не помогает.
ЦЕННОСТИ (julianday(:D),
Если я изменю поле DATE на CHAR в базе данных, то:
DateToStr(Plannercalendar1.Date);
работает правильно....
1 ответ
Я храню дату и время в метках времени SQL:
SomeQuery.ParamByName('PARAM').AsSQLTimeStamp := DateTimeToSQLTimeStamp(Now);
SomeDateTime := SQLTimeStampToDateTime(SomeQuery.ParamByName('PARAM').AsSQLTimeStamp);
Взгляните на эти функции из блока Data.SqlTimSt: