C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Формат даты  (Прочитано 2756 раз)
TYMON
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 4


Формат даты
« : 20 Май 2015, 14:30:37 »

 Формат даты в MySQL "yy-mm-dd" Делаю такой код ниже и не срабатывает как сделать конвертацию формата даты?

Код
ADOQuery_dobavlenie->Close();
ADOQuery_dobavlenie->SQL->Clear();
  DateTimePicker1->Format="yy-mm-dd";
  // Edit5->Text=a->AsString
ADOQuery_dobavlenie->SQL->Add("INSERT INTO acz.dogovor VALUES ('"+Edit1->Text+"', '"+Edit2->Text+"', '"+Edit3->Text+"', '"+Edit4->Text+"', '"+DateTimePicker1->Date+"', '"+Edit6->Text+"', '"+Edit7->Text+"', '"+Edit8->Text+"', '"+Edit9->Text+"', '"+Edit10->Text+"')");
  ADOQuery_dobavlenie->SQL->Add("")
 
//активируем запрос (отбираем данные)
ADOQuery_dobavlenie->ExecSQL();
 
Записан
Rius
Давний друг


Сказали спасибо: +116/-5
Offline

Сообщений: 753


Re: Формат даты
« Ответ #1 : 20 Май 2015, 14:49:49 »

DateTimePicker1->Format это формат отображения на форме, а не преобразования значения в строку.
Научитесь пользоваться функциями форматирования.
Записан
TYMON
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 4


Re: Формат даты
« Ответ #2 : 20 Май 2015, 14:54:45 »

Можно это сделать без применения Edit?
Записан
Rius
Давний друг


Сказали спасибо: +116/-5
Offline

Сообщений: 753


Re: Формат даты
« Ответ #3 : 20 Май 2015, 15:35:14 »

А зачем вы применяете Edit?
См http://www.functionx.com/cppbuilder/topics/datetime.htm - Formatting and Controlling the Display of Dates
Записан
gen
Участник


Сказали спасибо: +28/-0
Offline

Сообщений: 52


Re: Формат даты
« Ответ #4 : 21 Май 2015, 08:56:04 »

Как вариант, для форматирования можно использовать сам SQL:
Код
'"+Edit4->Text+"', to_date('"+DateToStr(DateTimePicker1->Date)+"','yy-mm-dd'), '"+Edit6->Text+"'
Записан
Rodini
новенький


Сказали спасибо: +0/-0
Offline

Сообщений: 1


Re: Формат даты
« Ответ #5 : 29 Май 2015, 10:18:38 »

вот готовая функция и используй ее везде и не парься
Код:
//--Функция - Преобразование даты в строку SQL формата---------------------------------
AnsiString __fastcall TFEnergy::DateToSQLFormatIgor(TDateTime Val)
{
  AnsiString res_str = "";
  AnsiString st = DateToStr(Val);

#ifdef DEBUG
  res_str = st;
#else
  //Дата в программе имеет вид 01.02.1995
  //После преобразования получим 19950201
  res_str = st.SubString(7, 4);
  //res_str += "-";
  res_str += st.SubString(4, 2);
  //res_str += "-";
  res_str += st.SubString(1, 2);
#endif

  return res_str;
}

Используем так...
Код:
ADOQuery_dobavlenie->SQL->Add("INSERT INTO acz.dogovor VALUES ('"+Edit1->Text+"', '"+Edit2->Text+"', '"+Edit3->Text+"', '"+Edit4->Text+"', '"+DateToSQLFormatIgor(DateTimePicker1->Date)+"', '"+Edit6->Text+"', '"+Edit7->Text+"', '"+Edit8->Text+"', '"+Edit9->Text+"', '"+Edit10->Text+"')");
Записан
Rius
Давний друг


Сказали спасибо: +116/-5
Offline

Сообщений: 753


« Ответ #6 : 29 Май 2015, 11:12:41 »

Цитата: Rodini от 29 Май 2015, 10:18:38
вот готовая функция и используй ее везде и не парься
Выкиньте её в топку и узнайте про DateTimeToString().

Код
TDateTime date = ...
 
String str;
DateTimeToString(str, "yyyy-mm-dd", date);
 
return str;// - форматированная дата в строке
« Последнее редактирование: 29 Май 2015, 18:13:46 от Rius » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.098 секунд. Запросов: 21.