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

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

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

Сообщение Basileus » 04.06.2010 17:50:04

При работе с MySQL обнаружилась проблема - нужно изменять введенный формат дд.мм.гггг в гггг.мм.дд. Не подскажете, есть ли какая-нибудь функция, позволяющая это сделать?
Basileus
новенький
 
Сообщения: 23
Зарегистрирован: 31.03.2010 16:23:22

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

Сообщение Mr.Smart » 04.06.2010 18:02:53

DateTimeToString
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

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

Сообщение svk12 » 05.06.2010 13:06:07

FormatDateTime
svk12
постоялец
 
Сообщения: 408
Зарегистрирован: 09.06.2008 18:42:47

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

Сообщение Light13 » 07.06.2010 06:36:21

неплохо бы увидеть код, где это необходимо.
Возможно проблему решит использование параметров в запросе, а возможно изменение маски ввода поля редактирования.
К сожалению, телепатией не страдаю :)
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

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

Сообщение Alexus » 07.06.2010 09:49:45

Именно для такого случая:

function DateFlip(St: string): string;
begin
DateFlip := Copy(St, 7, 4) + '-' + Copy(St, 4, 2) + '-' + Copy(St, 1, 2);
end;
Alexus
незнакомец
 
Сообщения: 6
Зарегистрирован: 25.12.2009 16:08:14

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

Сообщение Light13 » 08.06.2010 06:27:31

мдя, попробуем включить телепатию
Код: Выделить всё
  {$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
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru