Topic: Формат даты в INSERT для SQLite и MySQL

Есть DataPicker1 на форме (Использую формат даты без времени).
Записываю эту дату в БД запросом через кнопку:
INSERT INTO
  Tbl_Product_Price_Calculation (id_Tbl_Goods, Product_Price_Date)
  VALUES
  ({Cbx_Goods_Name}, {DateTimePicker_CurrentDate})
В БД записывается значение даты, например, 2018-07-26
Каким образом исправить запрос, чтобы записалось 2018-07-26 00:00:00.000 ?
Причем надо так, чтобы запрос работал правильно при переводе приложения с SQLite на MySQL.

Re: Формат даты в INSERT для SQLite и MySQL

В моем примере режется кусок строки с датой формата dd.mm.yy:

var fDate: TDateTime;
arrDate: array of string;
sDate: string;
begin
...
arrDate := SplitString(sDate,'.'); // получаем в переменные YY - год, MM - месяц, DD - день из даты в строке данных
DD := arrDate[0]; MM := arrDate[1]; YY := arrDate[2];
fDate := EncodeDate(StrToInt(YY),StrToInt(MM),StrToInt(DD)); // кодируем дату для записи в БД
sDate := '"'+FormatDateTime('yyyy-MM-DD 00:00:00.000', fDate)+'"'; // форматируем дату для SQL, в кавычки заключать в запросе INSERT уже не надо
...
end;

Вам, соответственно, надо порезать строковую переменную из DataPicker1 с другим разделяющим символом (видимо, -)

Re: Формат даты в INSERT для SQLite и MySQL

Скачайте пожалуйста последнюю бета версию, поправил, теперь будет записываться как 2018-07-26 00:00:00.000
https://www.dropbox.com/s/wutj7mnux7f3a … a.zip?dl=0

Dmitry.