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

1

Как часть параметризованного запроса, я пытаюсь вставить дату из планировщика.

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;

Я получил:

Изображение 24801

Когда я это делаю (просто чтобы проверить):

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

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

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

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

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

Изображение 24802

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

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

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

DateToStr(Plannercalendar1.Date);

работает нормально....

  • 0
    Исходя из ваших предыдущих вопросов, я предполагаю, что вы используете TMS Planner. Почему вы используете JulianDateToDateTime? Что не так просто с использованием PlannerCalendar1.Date?
  • 1
    Есть идеи о чем? На что ты думаешь почему это не сработает?
Показать ещё 9 комментариев
Теги:
delphi-xe4

1 ответ

0

Я храню datetime в метках времени SQL:

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

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

DateTimeToSQLTimeStamp

SQLTimeStampToDateTime

  • 0
    Я попытался: "Params.ParamByName ('D'). AsSQLTimeStamp: = DateTimeToSQLTimeStamp (Now);" но я получаю «Удаленная ошибка: функция не реализована»

Ещё вопросы

Сообщество Overcoder
Наверх
Меню