Страница 1 из 1

Преобразование формата даты

СообщениеДобавлено: 04.06.2010 17:50:04
Basileus
При работе с MySQL обнаружилась проблема - нужно изменять введенный формат дд.мм.гггг в гггг.мм.дд. Не подскажете, есть ли какая-нибудь функция, позволяющая это сделать?

Re: Преобразование формата даты

СообщениеДобавлено: 04.06.2010 18:02:53
Mr.Smart
DateTimeToString

Re: Преобразование формата даты

СообщениеДобавлено: 05.06.2010 13:06:07
svk12
FormatDateTime

Re: Преобразование формата даты

СообщениеДобавлено: 07.06.2010 06:36:21
Light13
неплохо бы увидеть код, где это необходимо.
Возможно проблему решит использование параметров в запросе, а возможно изменение маски ввода поля редактирования.
К сожалению, телепатией не страдаю :)

Re: Преобразование формата даты

СообщениеДобавлено: 07.06.2010 09:49:45
Alexus
Именно для такого случая:

function DateFlip(St: string): string;
begin
DateFlip := Copy(St, 7, 4) + '-' + Copy(St, 4, 2) + '-' + Copy(St, 1, 2);
end;

Re: Преобразование формата даты

СообщениеДобавлено: 08.06.2010 06:27:31
Light13
мдя, попробуем включить телепатию
Код: Выделить всё
  {$TELEPATHY ON}
:D

Вы вводите данные в поле редактирования, но в базе данных другой формат данных.
Примерно так вы пытаетесь сохранить значения:
Код: Выделить всё
  Query1.SQL.Text:='Insert into TableName (FieldNameForDate) values (' + DateString + ')';


В связи с чем вам нужно менять формат даты, причем, к типу TDateTime ваше значение не имеет прямого отношения - это строка.

Попробуйте заменить прямую вставку значение на параметр, примерно так:
Код: Выделить всё
  SQLQuery1.SQL.Text:='Insert into TableName (FieldNameForDate) values ( :ParamDate)';
  SQLQuery1.Params.ParamByName('ParamDate').DataType:=ftDate;
  SQLQuery1.Params.ParamByName('ParamDate').Value:=DateValue;//тип данных TDateTime


никаких дополнительных преобразований делать не нужно - при конвертировании параметра произойдет автовыбор формата даты. Также можно использовать для ввода значений не edit, а, к примеру, DateEdit