Topic: не отображается в таблице время 00:00

Добрый день.
Столкнулся с такой проблемой: в гриде на форме не отображаются (пустая ячейка) данные времени, если время = 00:00, в базе данных это поле имеет тип ВРЕМЯ и содержит данные 1899-12-30 00:00:00.000, возможно грид воспринимает эти данные как пустую строку...
Как это исправить, чтобы в ячейке отображалось 00:00?

Post's attachments

Attachment icon elapsed_time.7z 296.88 kb, 179 downloads since 2022-05-05 

Re: не отображается в таблице время 00:00

Есть два варианта:


1) использовать для получения данных SQL-запрос с форматированием результата
2) написать скрипт, который бы менял пустые ячейки на '00:00'.

Визуальное программирование: блог и телеграм-канал.

Re: не отображается в таблице время 00:00

То есть я правильно предположил, что данные в базе 1899-12-30 00:00:00.000 грид воспринимает как пустую строку?
Или проблема во встроенном SQL запросе, который заполняет грид? Использую штатную кнопку "поиск", видимо придётся на кнопу вешать SQL запрос для заполнения грида.

Re: не отображается в таблице время 00:00

проверил через FormatDataTime значения 00:00 не выводится
используйте текстовое поле

procedure form2_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
  SQLExecute('Insert INTO events(event,started,finished,elapsedmins)VALUES'+
  '("'+Form2.Edit1.Text+'","'+ FormatDateTime('HH:MM',Form2.DateTimePicker1.DateTime) +'"'+
  ',"'+FormatDateTime('HH:MM',Form2.DateTimePicker2.DateTime)+'","'+FormatDateTime('HH:MM',Form2.DateTimePicker3.DateTime) +'")');
  UpdateDataBase('events');
end;
Post's attachments

Attachment icon elapsedtime.zip 17.41 kb, 164 downloads since 2022-05-06 

Re: не отображается в таблице время 00:00

sibprogsistem wrote:

...
используйте текстовое поле
...

Да, это тоже вариант. Вот только я потом из грида экспортирую в эксель и там продолжаю со временем работать, в частности форматировать (раскрашивать) по условию, со временем в виде текста это не получится.
Хотелось бы, конечно, понять почему так работает MVDB.
Спасибо за советы.

Re: не отображается в таблице время 00:00

Всем привет,
Я думаю, что это больше связано с тем, как SQLite хранит даты, а не с MVD.
Но вы всегда можете схитрить и добавить 1 секунду к прошедшему времени в вашем скрипте.
Пожалуйста, смотрите прикрепленный файл.
С уважением
Derek.
.
I think it is more how SQLite stores the dates and less of an MVD issue.
But you could always cheat and add 1 second to the elapsed time in your script.
Please see the attached.

Post's attachments

Attachment icon elapsed_time3.zip 360.22 kb, 179 downloads since 2022-05-06 

Re: не отображается в таблице время 00:00

Thanks, Derek! Excellent cheat.
It suits me.