Такая ситуация DataSet получает таблицу такого вида рис.1 во вложении получаю рис. 2
// проходим по каждой ячейке текущей строки
for I := 0 to DataSet.FieldCount - 1 do
begin
SetDateFormat('dd.mm.yy');
SetDateSeparator('.'[1]);
SetTimeFormat('hh:nn:ss');
SetTimeSeparator(':'[1]);
aStr := DataSet[1].AsStr;
aStr := aStr + ' - ' + DataSet[2].AsStr;
end;
Так вот DataSet[1].AsStr могу еще как то конвертировать например в 21.09.26 12:13:28, а вот DataSet[2].AsStr не реагирует на формат или конвертацию (StrToDateTime и обратно) времени рис.2
Как сделать красиво 21.09.26 12:13:28 - 21.09.26 12:13:29???
Здравствуйте.
1. Не нужно переносить задачи СУБД в скада-систему. Преобразовать данные к нужному формату можно сразу в SQL-запросе.
2. У компонента "Таблица (https://simple-scada.com/help/manual/table.html)" есть свой внутренний метод RunSQL (https://simple-scada.com/help/script/trunsql.html), который удобно использовать для того, чтобы отобразить результат выполнения SQL-запроса в таблице.
Пример скрипта, который без дополнительного разбора позволяет отобразить данные в нужном формате сразу в таблице "Table1" :
var
aQuery: string;
begin
// формируем запрос к БД на выборку данных из таблицы `my_table`
aQuery := 'SELECT CONCAT_WS('' - '', DATE_FORMAT(t1, ''%Y.%m.%d %H:%i:%s''), DATE_FORMAT(t2, ''%Y.%m.%d %H:%i:%s'')) AS range_datetime, m FROM my_table';
// выполнить запрос и заполнить таблицу результатом выполнения
Table1.RunSQL(aQuery, tsAll);
end.