Преобразование формата даты
Модератор: Модераторы
Преобразование формата даты
При работе с MySQL обнаружилась проблема - нужно изменять введенный формат дд.мм.гггг в гггг.мм.дд. Не подскажете, есть ли какая-нибудь функция, позволяющая это сделать?
DateTimeToString
FormatDateTime
неплохо бы увидеть код, где это необходимо.
Возможно проблему решит использование параметров в запросе, а возможно изменение маски ввода поля редактирования.
К сожалению, телепатией не страдаю
Возможно проблему решит использование параметров в запросе, а возможно изменение маски ввода поля редактирования.
К сожалению, телепатией не страдаю
Именно для такого случая:
function DateFlip(St: string): string;
begin
DateFlip := Copy(St, 7, 4) + '-' + Copy(St, 4, 2) + '-' + Copy(St, 1, 2);
end;
function DateFlip(St: string): string;
begin
DateFlip := Copy(St, 7, 4) + '-' + Copy(St, 4, 2) + '-' + Copy(St, 1, 2);
end;
мдя, попробуем включить телепатию
Вы вводите данные в поле редактирования, но в базе данных другой формат данных.
Примерно так вы пытаетесь сохранить значения:
В связи с чем вам нужно менять формат даты, причем, к типу TDateTime ваше значение не имеет прямого отношения - это строка.
Попробуйте заменить прямую вставку значение на параметр, примерно так:
никаких дополнительных преобразований делать не нужно - при конвертировании параметра произойдет автовыбор формата даты. Также можно использовать для ввода значений не edit, а, к примеру, DateEdit
Код: Выделить всё
{$TELEPATHY ON}
Вы вводите данные в поле редактирования, но в базе данных другой формат данных.
Примерно так вы пытаетесь сохранить значения:
Код: Выделить всё
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
