Есть переменная DateTime^ date, нужно внести её значение в базу данных MYSQL в формате yyyy-MM-dd HH:ss:mm , как конвертировать значение в данный формат? C++ cli
INSERT INTO bank.transactions (id_transaction,send_date) VALUES ( null, '"+date+"')",conDataBaseForTransaction);
Когда вы пишете
"INSERT ... VALUES (null, '" + date + "')"
то при этом у переменной date
автоматически вызывается метод ToString()
. То есть это равноценно следующему:
"INSERT ... VALUES (null, '" + date.ToString() + "')"
При это тип DateTime
форматируется в соответствии с настройками текущей культуры. То есть если на компьютере пользователя установлен русский язык, формат вывода будет один, если английский язык - формат будет другой.
Метод DateTime.ToString имеет несколько перегрузок. Среди них принимающая строку формата. Воспользуемся ей.
Зададим формат вручную:
"INSERT ... VALUES (null, '" + date.ToString("yyyy-MM-dd HH:ss:mm") + "')";
Есть также стандартные форматы. Например:
date.ToString("s") // 2018-10-27T17:28:20
date.ToString("u") // 2018-10-27 17:28:50Z
Не знаю, распарсит ли такие форматы MySql.
А теперь главное.
Никогда не конструируйте sql-запрос с помощью склейки строк. Это чревато sql-инъекцией (и позорным увольнением с клеймом профнепригодного).
Кроме того, такие запросы неэффективны, т. к. каждый раз компилируются, потому что запрос с новой датой отличается от запроса с предыдущей датой. Между тем запрос с параметрами кэшируется, потому что отличия значений параметров не берутся в расчёт.
Всегда используйте параметризованные запросы!
В итоге это должно выглядеть примерно так:
String ^query = L"INSERT INTO bank.transactions(id_transaction, send_date) VALUES (@id, @date)";
MySqlCommand ^command = gcnew MySqlCommand(query, connection);
command->Parameters->Add(gcnew MySqlParameter("id", null));
MySqlParameter ^dateParam = gcnew MySqlParameter("date", MySqlType::DateTime);
dateParam->Value = date;
command->Parameters->Add(dateParam);
В синтаксисе могут быть ошибки, я не проверял (нет под рукой мускуля и неохота ставить провайдер). В случае чего, ищите примеры использования MySqlParameter.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Использую Python3 и MySQLdb, пытаюсь обратиться к уже созданной таблице, которая имеет имя: '125059735_gjt'
На мастере файл ibdata1 занимает половину базыВ настройках innodb_file_per_table=1
У меня есть блок, к примеру, с ID "topic"Хочу поставить на фон изображение так, чтобы оно, независимо от ширины блока, всегда адаптировалось под...