Topic: Опять вопрос по Дате

Никак не получается вычислить значение даты:

procedure FormFinans_TableGrid4_OnCellClick (Sender: string; ACol, ARow: Integer);
var
    dd_count: TDateTime;
    dd: string;
begin
     // Расчет ПЕНИ
     dd:= SQLExecute('SELECT zDataIsp FROM zakaz WHERE (id = ''' + IntToStr(FormFinans.TableGrid4.dbItemID) + ''')');

     ShowMessage (dd);
     dd_count:=Date(dd);
     ShowMessage (dd_count);

     FormFinans.Edit2.Text:= IntToStr(DaysBetween(Now,dd_count));
end;

Нужно в Edit записать количество дней между текущей датой и датой из базы.
Такая конструкция ругается на несоответствие форматов.

Re: Опять вопрос по Дате

И как такую операцию совершить в вычисляемом поле?

date()-поле типа дата

НЕ РАБОТАЕТ.

Re: Опять вопрос по Дате

Как в ВЫЧИСЛЯЕМОЕ ПОЛЕ передать значение переменной? В моем случае - это ставка рефенансирования ЦБ.

Re: Опять вопрос по Дате

попробуйте так

procedure FormFinans_TableGrid4_OnCellClick (Sender: string; ACol, ARow: Integer);
var
    dd_count: TDateTime;
    dd: string;
begin
     // Расчет ПЕНИ
     dd:= SQLExecute('SELECT zDataIsp FROM zakaz WHERE (id = ''' + IntToStr(FormFinans.TableGrid4.dbItemID) + ''')');

     if dd<>'' then     
     begin    
        dd_count := SQLDateTimeToDateTime(dd);
        FormFinans.Edit2.Text:= IntToStr(DaysBetween(Now,dd_count));
     end else  FormFinans.Edit2.Clear;
end;
Dmitry.

Re: Опять вопрос по Дате

abgroup-artur wrote:

И как такую операцию совершить в вычисляемом поле?

date()-поле типа дата

НЕ РАБОТАЕТ.

Cast ((
    JulianDay('now') - JulianDay(zDataIsp)
) As Integer)
Dmitry.

Re: Опять вопрос по Дате

abgroup-artur wrote:

Как в ВЫЧИСЛЯЕМОЕ ПОЛЕ передать значение переменной? В моем случае - это ставка рефенансирования ЦБ.

Можете создать отдельную таблицу, где будет содержаться только одна запись с данной ставкой рефенансирования.


Далее использовать значение этой записи в выч. поле

(SELECT stavka FROM tablename LIMIt 1)

но есть ньюанс, например когда вы смените ставку рефинансирования, то изменится значения и старых записей, которые были созданы при действии старой ставки. Поэтому возможно будет лучше хранить данную ставку вместе с каждой записью.


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

Dmitry.

Re: Опять вопрос по Дате

Вы уверены, что рез в днях? Очень уж большой)

Re: Опять вопрос по Дате

abgroup-artur wrote:

Вы уверены, что рез в днях? Очень уж большой)

Вы про скрипт или выч. поле?

Dmitry.

Re: Опять вопрос по Дате

поправил, не учел ссылку на таблицу)) Спасибо!!

Re: Опять вопрос по Дате

выч. поле

Re: Опять вопрос по Дате

abgroup-artur wrote:

выч. поле

поправили? все работает теперь?

Dmitry.