Excel常规格式下的日期会转化成自“1900/1/0”开始的天数,如41374之类的。
在Excel中处理方式如下,处理后点击Enter键确定。
若想除去Excel函数,则复制该值,右键鼠标选择“选择性粘贴”选项中“粘贴值和数字格式”。
在mysql中处理Excel这类日期时,可以依次测试下列步骤:
1. 查询指定时间'2013-04-10' 到‘1900/1/1’之间的天数,如
mysql > SELECT TO_DAYS( '2013-04-10' ) - TO_DAYS( '1900-01-01' );
> 41372 -- 与实际Excel处理的日期41374相差2天
2. 根据已知的日期天数 41374 逆向运算
mysql > SELECT 41374 - 2 + TO_DAYS( '1900-01-01' ); -- 计算所得为日期对应的正确天数
3. 将以上天数转化为日期格式,则需要用到mysql函数FORM_DAYS(N)
mysql > SELECT FROM_DAYS( 41374 - 2 + TO_DAYS( '1900-01-01' ) );
> 2013-04-10 -- 符合预期
4. 用待处理字段名days替换41374
mysql > SELECT FROM_DAYS( days - 2 + TO_DAYS( '1900-01-01' )) FROM tableName1;