Я использую ДАННЫЕ ЗАГРУЗКИ MySQL ЛОКАЛЬНЫЙ SQL-оператор INFILE для загрузки данных из файла CSV в существующую таблицу базы данных.
Вот SQL-оператор в качестве примера:
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(name, address, dateOfBirth)
Третий столбец в CSV, который отображается на dateOfBirth поле в настоящее время, имеет дату в следующем формате:
14-Feb-10
Как я могу изменить вышеупомянутый SQL-оператор для форматирования даты в формат даты MySQL т.е. 2010-02-14
?
Я знаю, как преобразовать строковую дату при использовании нормального использования синтаксиса ВСТАВКИ:
STR_TO_DATE('14-Feb-10', '%d-%b-%y')
Можно использовать StrUtils.RepleyText.
Реализация
Использует StrUtils;
{$ R * .dfm}
procedure TGeneric.Button1Click(Sender: TObject);
Var
S: String;
begin
S := '''A'',''B'',''C'',''D''';
S := ReplaceText(S, '''', '');
ShowMessage(S);
end;
S теперь равно 'A, B, C, D'.
RepleyText вызовет AnsiReplireText, который в свою очередь вызывает SysUtils.StringReplace с установленными для вас флагами замены [rfRepleyAll, rfIgign Case].
-121--3442069-Вертолеты и самолеты летают, но делают это по-разному - они оба являются экземплярами какого-то гипотетического объекта Flyer. Вы можете попросить объект Flyer «летать» - но Flyer - это просто интерфейс. Он ничего не знает о полете, кроме того, что он должен быть в состоянии летать.
Однако, если и вертолет, и самолет следуют интерфейсу летного аппарата, чем если бы у вас был аэродромный объект, и вы дали ему летательный аппарат, все, что нужно сделать аэродрому, - это запросить летные аппараты.
Например,
Airplace X=Airplane X("boeing 747");
Airfield::takeoff(&X);
Helicopter Y= Helicopter("Comache");
Airfield::takeof(&Y);
void Airfield::takeOff(Flyer * f)
{
f->fly();
}
C++ - это строгий язык безопасности типа, и этот вид функциональности (выполнение вызовов функций к производным классам косвенно через базовый класс) возможен только тогда, когда RTTI включен для иерархии объектов, и определение виртуальной функции члена позволяет это.
-121--2894354- Необходимо использовать предложение SET
вместе с переменной для ссылки на содержимое строки в этом столбце. В списке столбцов столбец даты присваивается имени переменной. Затем ее можно использовать в инструкции SET
. (Обратите внимание, я не получил MySQL передо мной, чтобы проверить это.)
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(name, address, @var1)
set dateOfBirth = STR_TO_DATE(@var1, '%d-%b-%y')
См. примеры пути ниже страницы по адресу: http://mysql2.mirrors-r-us.net/doc/refman/5.1/en/load-data.html (Не уверен, почему эта страница, похоже, отличается от основной документации тем, что на самом деле содержит пример использования SET
.)