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

时间:2013-08-27 09:37:24

标签: mysql excel

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

由于我无法覆盖文件,我想在文件名上附加一个时间戳,以便创建唯一的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'

2 个答案:

答案 0 :(得分:0)

我认为在准备声明的帮助下,你可以实现它。没有测试,但我认为值得拍摄。

   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 ;

希望这会有所帮助。

〜ķ

答案 1 :(得分:0)

感谢金属战斗让我了解如何接近赛事。

以下是我的问题的答案。这很有效。

  

DELIMITER $$

     

如果不是Extract_Users

,则创建事件      

ON SCHEDULE每1分钟评论'Extract_Users'

     

DO

     

BEGIN

     

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'”);

     

PREPARE extrct FROM @sql_stmt;

     

EXECUTE extrct;

     

DEALLOCATE PREPARE extrct;

     

END $$

     

DELIMITER;