在工作中遇到这样一个问题,给定excel中的数据导入到mysql数据库中,但是excel中的是字符串类型的8位数字,直接导入数据库是按照时间戳进行换算的,这种换算结果并不是我想要的。如果修改数据库字段类型,那就需要修改entry对象的类型,影响的地方较多。
解决思想:给表新增一个字段用于存储excel中字符串类
型的日期,然后用str_to_date()去更新datetime类型的字段。
#date_test:表名
#birthday1:datetime类型的字段
#birthday2:字符串类型的日期
#'%Y%m%d':字符串类型的日期对应的格式形如20200824
#'%Y-%m-%d':字符串类型的日期对应的格式形如2020-08-24
UPDATE date_test SET birthday1 = str_to_date( birthday2,'%Y%m%d');
补充1:数据库中的datetime转字符串,DATE_FORMAT()
#birthday1:datetime类型的字段
#birthday2:字符串类型的字段
#'%Y%m%d':形如2020/08/24
UPDATE date_test SET birthday2 = DATE_FORMAT(birthday1,'%Y%m%d');
要转换成的字符串样式我们自己定义,通过参数指定。
补充2:mysql中根据两张表的关联更新某个字段(一般数据量大时,不想关联表查询时使用此方式,会有冗余字段)
UPDATE t1,t2 SET t1.type = t2.type WHERE t1.id = t2.cid;
补充3:字符串截取函数的应用
SUBSTRING(str FROM pos FOR len)
从左边截取3位,SUBSTRING(要截取的字段,1,3);
注意:从1开始,不是0