我需要一种在CSV文件中使用UTC_TIMESTAMP()函数的方法。
目前我正在使用以下语法;
LOAD DATA INFILE '/path/to/file.csv'
INTO TABLE my_table FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
我不太清楚如何保持UTC_TIMESTAMP()不被引号括起来。在数据库中输入时,我得到以下结果
"0000-00-00 00:00:00"
这是我在堆栈溢出或Google上找到的唯一一个将字符串转换为MYSQL值的例子。
答案 0 :(得分:0)
我按照此页面上的MySQL文档解决了这个问题。 https://dev.mysql.com/doc/refman/5.7/en/load-data.html
在页面的大约一半处有一个部分向您展示如何为行创建变量,然后将表行设置为等于本机mysql函数或分配给这些变量的值(无论您选择哪个)。
我所指的文档中的示例如下所示。
LOAD DATA INFILE 'file.txt'
INTO TABLE t1
(column1, column2)
SET column3 = CURRENT_TIMESTAMP;
我通过重组我的代码解决了我的问题......
LOAD DATA LOCAL INFILE '/path/to/file.csv'
INTO TABLE veh_icodes FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(id, vcode, year, make, model, body_style, tran_type, engine_cap, drive_train, doors, trim, created_by, updated_by, @created_at, @updated_at, active)
SET created_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP;"
我希望这有助于某人。 :)