Я ищу способ добавить текущее время к моему имени файла после каждого нового экспорта.
Текущий код:
SELECT * INTO OUTFILE 'C:/Output/data_.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' FROM eloge_collector;
Чего я хочу достичь:
SELECT * INTO OUTFILE 'C:/Output/data_2018-05-10-15-14.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' FROM collector;
или что-то вроде этого.
вы можете использовать подготовленные инструкции для создания своей строки запроса, а затем выполнить ее https://dev.mysql.com/doc/refman/8.0/en/sql-syntax-prepared-statements.html
это мое решение
сначала создайте переменную create, чтобы удерживать строку запроса.
используйте функцию concat для ввода текущего времени даты в строку запроса.
используйте DATE_FORMAT и теперь функции для получения текущего времени
set @sql = concat("SELECT * INTO OUTFILE 'C:/filePrefix_",DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),".fileExtension' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' FROM 'table'");
prepare s1 from @sql; --create statment from variable
execute s1; -- execute prepared statements