1 (edited by vit007 2020-07-25 12:42:58)

Topic: Как правильно отнять даты в запросе

Есть конструкция

SQLexecute('SELECT (julianday("now") - julianday(dataR)  ...)

Она хорошо работает если dataR в базе имеет "тип поля" ДАТА
Но вот незадача, в процессе работы базы, мне надо до закидывать новые значения реального времени, как сделать не понял... т.к. это делает кнопка сохранить, а как в скрипте это выполнить непонятно...
Перевел "тип поля" в ТЕКСТ, и julianday ругается на разность представления значения...

2 (edited by Inkalika 2020-07-25 13:36:46)

Re: Как правильно отнять даты в запросе

Может добавить процедуру: при нажатии кнопки сохраняется в невидимое поле DateTimePicker текущее время, дата?
FrmMain.DateTimePicker1.Date:=SQLDateTimeToDateTime(SQLexecute('SELECT datetime (''now'')'));

3 (edited by sibprogsistem 2020-07-25 20:06:54)

Re: Как правильно отнять даты в запросе

[b]Form1.Edit1.Text:=DateToStr(NOW - SQLDateTimeToDateTime(SQLexecute('SELECT yu FROM lib WHERE id=1')));[/b]
Form1.Edit1.Text:=FormatDateTime('dd',(NOW - SQLDateTimeToDateTime(SQLexecute('SELECT yu FROM lib WHERE id=1'))));
Form1.Edit1.Text:=SQLexecute('SELECT julianday("now") - julianday(yu) FROM lib WHERE id=1');   

   
когда Вы поменяли тип поля, то и значение этого поля тоже потеряно (то есть там пусто)

Re: Как правильно отнять даты в запросе

Понятно, что меняя значение потеряется. Поэтому у меня был выбор делать поля только ДАТА, где не понятно, как сохранять значение DataTimePicker или Все поля ТЕКСТ, где все проще и извесно...

Сделал так

Trunc(now) - Trunc(StrToDate(SQLexecute('SELECT data FROM req WHERE id='

Re: Как правильно отнять даты в запросе

vit007 wrote:

Понятно, что меняя значение потеряется. Поэтому у меня был выбор делать поля только ДАТА, где не понятно, как сохранять значение DataTimePicker или Все поля ТЕКСТ, где все проще и извесно...

Сделал так

Trunc(now) - Trunc(StrToDate(SQLexecute('SELECT data FROM req WHERE id='

DataTimePicker записать значение в текстовое поле без скрипта не сможет, но если вы попытаетесь записать его значение в текстовое поле, то значение поля будет выглядеть так же как и в поле дата...
для записи своего варианта используйте такой скрипт

var
tDate : string = FormatDateTime('yyyy-mm-dd',Form1.DataTimePicker1.DateTime);

Re: Как правильно отнять даты в запросе

Такой вариант ко к раз для записи в текствое поле, так у меня есть... А вот как записать в базу значение DataTimePicker1, что оно, значение, было ДАТА... Это действие хорошо получается в свойствах кнопки сохранить, а как это выражается в скрипте - не понятно...