现有一个以 :
分隔的 txt 文件,大概如下:
name:1/1/2011 12:00:00 AM:[email protected]:1/01/1991 ...
日期字段可能存在具体的值,也有可能为空.格式是 01/01/2011 09:00:01 AM
导入的时候 mysql load infile local 'file.txt' into table t_table
.
因为设置了 ":" 为分隔符,所以到日期那就自动把 09:00:01
的时间分隔符当作字段分隔符把分钟,秒当作字段内容分配到字段上了
select * from table
name | 01/01/2011 09 | 00 | 01 AM | ...
这可如何是好,网上找了一圈没有头绪,所以来请教下大家 QAQ
1
CEBBCAT 2021-04-10 12:25:42 +08:00 via Android
写个脚本二次处理一下吧,比如 Python
|
2
jotpot 2021-04-10 15:37:17 +08:00 via iPhone 1
先导入一张临时表,然后 insert select,把时间字段拼起来放入你的表里
|
3
keepeye 2021-04-10 16:57:52 +08:00
想不开么用冒号分隔,用逗号不行吗?或者每个字段用双引号包起来当 csv 处理
|
4
no1xsyzy 2021-04-10 18:25:51 +08:00
网上找当然没有用,因为这个问题不是技术问题。
就问你,**你**是怎么知道这里是个包含分、秒的日期的? 我看着日期字段格式就是 01/02/2006 03 啊?只写到时,这格式有什么问题吗? |
5
xuanbg 2021-04-10 20:16:26 +08:00 1
先把 txt 文件里面的冒号统一替换成逗号,然后用正则把属于时间的冒号替换回来,再导入就不会有问题了。
|
6
proxychains OP @no1xsyzy txt 日期格式是 01/01/2020 09:09:09 AM
你说的只写到时是导入后的字段 |
7
proxychains OP @keepeye 没办法,拿到的就是这样
|
8
proxychains OP @xuanbg 感谢提供思路,恶补一下正则去…
|
9
no1xsyzy 2021-04-12 10:01:01 +08:00
@proxychains 那我问你,我认为你把 txt 日期格式理解错了,不行吗?
把 “为什么不行、如何分辨分隔字段的冒号和日期格式中的冒号” 写出来就是你的程序 |