尝试在maridadb中导入数据,我的数据将显示为“20220910星期六”“20220911星期一”“20220912星期二”“20220913星期四”表示数据。我的数据库结构化列是:column 1:年,column 2:月,column 3:日,column 4:DayInLetters。需要定义一个配置,如每行的前4个字母,即从0到3是年字段,4-5是月,6-7是日,8-最后是DayInLetters。是否有解决方案?
7d7tgy0s1#
这是LOAD DATA INFILE的一项工作。因为输入文件中的字段不是用逗号、制表符或类似的符号分隔的,所以需要使用一个叫做输入预处理的不常见的特性。将此SQL语句提供给命令行mysql客户端即可。
LOAD DATA INFILE '/tmp/data.txt' INTO TABLE tbl (@line) SET year = SUBSTRING(@line, 1, 4), month = SUBSTRING(@line, 5, 2), day = SUBSTRING(@line, 7, 2), day_in_letters = SUBSTRING(@line, 9);
这会依次将指定文件中的每一行加载到临时变量@line中,然后为每一列提取一个子字符串。但是,专业提示,将日历日期放入DATE columns (or TIMESTAMP or DATETIME columns)中比设计您自己的日历日期表示方式要好得多。MariaDB和MySQL已经对date-arithmetic features进行了全面、完整的调试。
@line
1条答案
按热度按时间7d7tgy0s1#
这是LOAD DATA INFILE的一项工作。因为输入文件中的字段不是用逗号、制表符或类似的符号分隔的,所以需要使用一个叫做输入预处理的不常见的特性。
将此SQL语句提供给命令行mysql客户端即可。
这会依次将指定文件中的每一行加载到临时变量
@line
中,然后为每一列提取一个子字符串。但是,专业提示,将日历日期放入DATE columns (or TIMESTAMP or DATETIME columns)中比设计您自己的日历日期表示方式要好得多。MariaDB和MySQL已经对date-arithmetic features进行了全面、完整的调试。