Добавление текущего времени в INTO OUTFILE 'C: /Output/data_.csv' - PullRequest
0 голосов
/ 10 мая 2018

Я ищу способ добавить текущее время к моему имени файла после каждого нового экспорта.

Текущий код:

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;

или что-то в этом роде.

1 Ответ

0 голосов
/ 10 мая 2018

вы можете использовать подготовленные операторы, чтобы создать строку запроса и затем выполнить ее 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
...