0

我正在尝试将 mysql 查询的输出存储到文件中。我需要一个扩展名为 .csv 的文件,它的名称应该是我电脑的当前时间,例如:2015-03-26 19:26:13.065000 .csv。
当我执行这个查询

conn=mysql.connector.connect(user='root',password='',host='localhost',database='ER_PC_NK')    
exe2 = conn.cursor()       
exe2.execute("""SELECT tbl_site.Site_name, State_Code, Country_Code,Street_Address, instrum_start_date, instrum_end_date, Comment INTO OUTFILE  'myrecord.csv' FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n' FROM tbl_site JOIN tbl_site_monit_invent ON site_id = tbl_Site_site_id""")

第一次它保存了一个名为 myrecord.csv 的文件,但第二次不是。在互联网上进行长时间搜索后,我发现它无法覆盖文件 myrecord.csv,所以我决定将文件命名为 currentTime.csv,为此我想尝试这种事情:

    ss=DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');

    SET @t1=1
    set @FOLDER = 'c:/tmp/';
    SET @PREFIX = 'orders';
    SET @EXT    = '.csv';

    SET @CMD = CONCAT("SELECT * FROM orders INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,
        "' FIELDS ENCLOSED BY '\"' TERMINATED BY ';' ESCAPED BY '\"'",
        "  LINES TERMINATED BY '\r\n';");

    PREPARE statement FROM @CMD

但发现一个错误:未定义用户定义的变量,再次搜索并发现用户定义的变量可从 Connector/NET 版本 5.2.2 获得,而我正在使用 MySQL Connector Python v2.0.3 for python v2.7

我很困惑,如果您有更好的解决方案,请告诉。你的努力会有很大的帮助。谢谢你。

4

1 回答 1

0

而不是用户定义的变量,你可以做

import datetime
conn = mysql.connector.connect(user='root',password='',host='localhost',database='ER_PC_NK')    
exe2 = conn.cursor()       
exe2.execute(
   """SELECT tbl_site.Site_name, State_Code, Country_Code,
      Street_Address, instrum_start_date, instrum_end_date,
      Comment INTO OUTFILE  %s FIELDS TERMINATED BY '|' OPTIONALLY
      ENCLOSED BY '"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n' 
      FROM tbl_site JOIN tbl_site_monit_invent ON site_id = tbl_Site_site_id
   """, (str(datetime.datetime.now()),))
于 2015-04-02T10:47:45.620 回答