Добавление текущего времени в INTO OUTFILE 'C: /Output/data_.csv'

0

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

Текущий код:

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
    Какой код вы используете для выполнения оператора? Если вы используете, например, PHP, вы можете создать имя файла в коде PHP, прежде чем выполнять инструкцию.
  • 0
    Другой вариант - использовать 13.5 подготовленный синтаксис оператора SQL .
Показать ещё 1 комментарий
Теги:
timestamp

1 ответ

1
Лучший ответ

вы можете использовать подготовленные инструкции для создания своей строки запроса, а затем выполнить ее 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
  • 0
    Я посмотрю на это и вернусь к вам, если это работает или нет, спасибо
  • 0
    Спасибо, это сработало

Ещё вопросы

Сообщество Overcoder
Наверх
Меню