解决xcel数据导入MySQL数据库【日期数据格式混乱】的问题

问题描述:需要将Excle中用户提供的数据导入到MySQL数据库中,但是导入的过程中发现用户提供的数据很乱,尤其是在日期类型的数据上。格式各种各样,数据类型也各种各样(文本和日期类型),具体情况如下所示。

类型 格式
日期 2020-01-01
日期 2020/1/1
文本 2020/1/1
文本 20.1.1
文本 2020.01.01

MySQL DATE_FORMAT()用法示例

set @date:='01/2/30'; --varchar类型的日期数据
select
	@date,
	date_format(@date,'%Y-%m-%d') formatter,
	case when @date is not null and date_format(@date,'%Y-%m-%d') is null then 0 else 1 end is_legal

解决方案

  • 经过测试,发现上面的表格中的所有类型都能够按照一定的格式进行转换。注意还要判断用户提供的数据是否合法比如(2020/02/30),此类数据需要专门挑出来和数据提供方确认。
  • 如果在Excel中进行修改,难点是文本类型的数据,需要分类型进行处理。所以当用户提供的数据含有文本类型,而且文本类型的数据的格式多样时,建议借助MySQLDATE_FORMAT()方法来处理

处理步骤

  1. 将Excel中的日期格式的数据,整列复制到文本编辑器中(如:notepad++
  2. 将excle中个日期列的数据格式全部设置为 文本类型。
  3. 把数据内容再从文本编辑器中复制回Excle表格中
  4. Excle内容导入到MySQL的数据表中,使用DATE_FORMAT()方法来update一下

猜你喜欢

转载自blog.csdn.net/u013795102/article/details/112064706