第一步:建表
create table orderinfo(
orderid int primary key not null ,
userid int,
isPaid varchar(10),
price float,
paidTime varchar(30));
create table userinfo(
userid int primary key,
sex varchar(10),
birth date);
第二步:导数
load data local infile 'C:/Users/lan/Desktop/123/order_info_utf.csv' into table orderinfo fields terminated by ',';
load data local infile 'C:/Users/lan/Desktop/123/user_info_utf.csv' into table userinfo fields terminated by ',';
注意点:
a、语句要正确
b、路径不要有中文,是左斜杆,
c、mysql 8.0 登陆使用 mysql --local-infile -uroot -p
注意: 要有fields terminated by ',' 是因为csv 文件是以逗号为分割符的
第三步:对 orderinfo 表的日期数据进行规整
a、先把时间格式标准化变成 1993-02-27 这样的
update orderinfo set paidtime=replace(paidtime,'/','-') where paidtime is not null;
b、然后更新字符串为日期格式,然后才能使用日期函数进行操作,
update orderinfo set paidtime=str_to_date(paidtime,'%Y-%m-%d %H:%i') where paidtime is not null;
如果报 function str_to_datetime_value 错误,可以用 select * from orderinfo where paidtime='\r' limit 10; 来看一下是否包含了 \r 符号,
如果是包含了,则用下面语句再过滤掉
update orderinfo set paidtime=str_to_date(paidtime,'%Y-%m-%d %H:%i') where paidtime is not null and paidtime <>'\r';
MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this
a.解决办法:
https://blog.csdn.net/gb4215287/article/details/79762020
b.把数据放到
secure-file-priv
附带语句:
# 清除表全部数据命令
truncate userinfo;
# 删除表命令
drop table user info;
# 修改表字段类型命令
alter table orderinfo modify column paidtime varchar(45);
MySQL 日期时间 Extract(选取) 函数。
1. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒
set @dt = '2008-09-10 07:15:30.123456';
select date(@dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt); -- 2008
select quarter(@dt); -- 3
select month(@dt); -- 9
select week(@dt); -- 36
select day(@dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt); -- 30
select microsecond(@dt); -- 123456
2.Example
date_add("2017-06-15",INTERVAL 10 DAY)
网友评论