gpt4 book ai didi

mysql - 将不同日期格式的csv上传到mysql

转载 作者:行者123 更新时间:2023-11-29 16:49:17 25 4
gpt4 key购买 nike

我的 csv 内容如下:

1,01.03.13,6310086579
2,01.03.13,6310086569
3,01.03.13,6310086573
4,04.03.13,6310086592
5,04.03.13,6310086592
6,04.03.13,6310086592
7,05.03.13,6310086633
8,05.03.13,6310086639

我必须将日期 01.03.13 输入到 MySQL 表中,格式为 2013-03-01,但它不起作用。像下面这样:

LOAD DATA INFILE 'E:\test.csv'
INTO TABLE test
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(sno, sdate, orderno, @d1)
SET sdate = date_format(str_to_date(@d1, '%d.%m.%y'), '%Y-%m-%d')

最佳答案

@d1 始终为空,因为 csv 文件中只有 3 列。我认为您打算将 csv 文件中的第二列分配给 @d1。

DROP TABLE IF EXISTS T;
CREATE TABLE T (sno INT,sdate DATETIME,orderno varchar(20));

LOAD DATA INFILE 'C:\\Program Files\\MariaDB 10.1\\data\\sandbox\\data.txt'
INTO TABLE t
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(sno, @d1, orderno)
SET sdate = date_format(str_to_date(@d1, '%d.%m.%y'), '%Y-%m-%d');
;

select * from t;

+------+---------------------+-------------+
| sno | sdate | orderno |
+------+---------------------+-------------+
| 1 | 2013-03-01 00:00:00 | 6310086579
| 2 | 2013-03-01 00:00:00 | 6310086569
| 3 | 2013-03-01 00:00:00 | 6310086573
| 4 | 2013-03-04 00:00:00 | 6310086592
| 5 | 2013-03-04 00:00:00 | 6310086592
| 6 | 2013-03-04 00:00:00 | 6310086592
| 7 | 2013-03-05 00:00:00 | 6310086633
| 8 | 2013-03-05 00:00:00 | 6310086639 |
+------+---------------------+-------------+
8 rows in set (0.00 sec)

但我认为您根本不需要转换第 2 列。您应该查看https://dev.mysql.com/doc/refman/8.0/en/load-data.html特别是“SET 子句中的用户变量可以通过多种方式使用”开始的部分

关于mysql - 将不同日期格式的csv上传到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52902508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com