从文件导入MySQL时出现日期问题

从文件导入MySQL时出现日期问题,mysql,sql,load-data-infile,Mysql,Sql,Load Data Infile,我有一个带有payDate DATETIME的表,我正在使用load data local infle'file.txt'将其插入表tableName中日期,如2012年4月26日00:00:00 这会发出警告,如第1行“payDate”列的数据被截断,表中的日期为0000-00-00:00:00 有没有办法指定日期的格式?试试: 您可能希望在加载之前修改这些变量: 将列类型设置为VARCHAR 加载数据填充 更新集column=DATE格式(str-to-DATE(列,'%d/%m/%Y'

我有一个带有
payDate DATETIME
的表,我正在使用
load data local infle'file.txt'将其插入表tableName中日期,如2012年4月26日00:00:00

这会发出警告,如第1行“payDate”列的数据被截断,表中的日期为0000-00-00:00:00

有没有办法指定日期的格式?

试试:


您可能希望在加载之前修改这些变量:

  • 将列类型设置为VARCHAR
  • 加载数据填充
  • 更新集column=DATE格式(str-to-DATE(列,'%d/%m/%Y'),'%Y-%m-%d'))
  • 将列类型设置回最新状态
  • 显示警告

我没有将datetime转换为varchar, 下面是它的工作代码-

mysql查询将csv数据导出到本地目录 在导出的csv中,删除列名并保存

在表中,创建日期和更新日期的类型为datetime

将CSV数据导入mysql
导入成功

听起来不错,但为什么我得到“第1行'payDate'列的警告| 1264 |超出范围值”并插入空值?我需要添加“%h:%I:%s”或“00:00:00”
load data local infile 'file.txt' into table tableName 
SET payDate = str_to_date(@payDate, '%d/%m/%Y');
SELECT organization_id,bank_name,branch_name,account_number,statement_type,parameter_name,
parameter_value,created_by,creation_date,updated_by,updation_date FROM cm_sub_param_values
    INTO OUTFILE 'D:\mytable.csv'
    FIELDS ESCAPED BY '""'
    TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\r\n';
    LOAD DATA INFILE 'D:/mytable.csv' IGNORE 
    INTO TABLE `cm_sub_param_values` 
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '\''
    LINES TERMINATED BY '\r\n' 
    (sub_param_id,organization_id,bank_name,branch_name,account_number,
statement_type,parameter_name,parameter_value,created_by,@creation_date,updated_by,@updation_date)
    SET creation_date = STR_TO_DATE(@creation_date, '%m/%d/%Y %H:%i'),
    updation_date = STR_TO_DATE(@updation_date, '%m/%d/%Y %H:%i') ;