如何添加MySQL输出文件的时间戳?

我正在创build一个每分钟运行一次的事件,并提取表中的某些列,并创build一个excel格式的输出文件

由于我不能覆盖文件,我想附加一个时间戳在文件名,所以它将创build独特的Excel文件名。

这里是我的事件的样本

CREATE EVENT IF NOT EXISTS 'Extract_Users' ON SCHEDULE EVERY 1 Minute COMMENT 'Data Extraction' DO SELECT userID, email, id FROM table_one.user_name INTO OUTFILE 'C:\path\path\Desktop\test\user.xls' 

我想在准备声明的帮助下,你可以实现它。 没有testing,但我认为值得投篮。

  DELIMITER $$ CREATE EVENT IF NOT EXISTS 'Extract_Users' ON SCHEDULE EVERY 1 Minute COMMENT 'Data Extraction' DO BEGIN SET @sql_text = CONCAT("SELECT userID, email, id FROM table_one.user_name INTO OUTFILE INTO OUTFILE 'C:\path\path\Desktop\test\'" , DATE_FORMAT( NOW(), '%Y%m%d') , "user.xls'" ); PREPARE s1 FROM @sql_text; EXECUTE s1; DEALLOCATE PREPARE s1; END $$ DELIMITER ; 

希望这会有所帮助。

〜ķ

感谢metalfight给我如何接近事件的想法。

这是我的问题的答案。 这工作。

DELIMITER $$

创build事件如果不存在Extract_Users

安排每个1分钟评论'Extract_Users'

开始

SET @sql_stmt:= concat(“SELECT userID,email,id FROM user_table.user_info INTO OUTFILE C:/ path / path / desktop / test / Users – ”,DATE_FORMAT(now(),'%​​Y-%m-%d_ %H%I%S'), “XLS。”);

准备从@sql_stmt提取;

EXECUTE extrct;

DEALLOCATE PREPARE extrct;

END $$

DELIMITER;