将当前时间添加到 INTO OUTFILE 'C:/Output/data_.csv'

问题描述 投票:0回答:2

我正在寻找一种方法,在每次新导出后将当前时间添加到我的文件名中。

当前代码:

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;

或者类似的东西。

mysql windows timestamp
2个回答
2
投票

您可以使用准备好的语句来创建查询字符串然后执行它 https://dev.mysql.com/doc/refman/8.0/en/sql-syntax-prepared-statements.html

这是我的解决方案

首先创建变量来保存查询字符串。

使用 concat 函数将当前日期时间注入查询字符串。

使用 DATE_FORMAT 和 now 函数来获取当前日期时间

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

-1
投票

是否可以将此结果转换为在 vba.net 上运行?

set @sql = concat("SELECT * INTO OUTFILE 'C:/filePrefix_",DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),".fileExtension' 字段终止于 ', ' 可选地用 '"' 括起来,以 ' 结尾的行 ' 来自

table
"); 从@sql准备s1; --从变量创建语句 执行s1; -- 执行准备好的语句

© www.soinside.com 2019 - 2024. All rights reserved.