Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > TDateTIme и результат запроса.


Автор: =Женек= 18.5.2014, 14:31
Господа, есть проблемка.
В Builder использую ADQuery.

Вот такая конструкция работает:
Код

TDateTime DT

 ADQuery2->Params->ParamByName("_time_id")->Value=Now();
 ADQuery2->SQL->Text="SELECT time_id FROM REPORT WHERE time_id<=:_time_id";
 ADQuery2->OpenOrExecute();

 DT=ADQuery2->FieldByName("time_id")->AsDateTime;



Но если я хочу выбрать в запросе максимальное значение time_id, так
Код

      ADQuery2->Params->ParamByName("_time_id")->Value=Now();
      ADQuery2->SQL->Text="SELECT MAX (time_id) as ti FROM REPORT WHERE time_id<=:_time_id";
      ADQuery2->OpenOrExecute();


     DT=ADQuery2->FieldByName("ti")->AsDateTime;



или так

Код

      ADQuery2->Params->ParamByName("_time_id")->Value=Now();
      ADQuery2->SQL->Text="SELECT MAX(time_id)  FROM REPORT WHERE time_id<=:_time_id";
      ADQuery2->OpenOrExecute();


     DT=ADQuery2->FieldByName("MAX(time_id) ")->AsDateTime;



то на этапе присвоения этого значения переменной DT выдается ошибка " "2014-05-18 15:29:00.000" is not valid date and time "

Автор: =Женек= 18.5.2014, 15:58
Почти разобрался... MySQL выдает данные вместе с тысячными долями секунды. Builder такой формат не понимает. Как сделать, чтобы в ячейку MySQL не писались тысячные секунды?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)