Excel日期格式改成文本格式后日期变成数字的解决方法;在mysql中处理由Excel导入的数字日期(不是时间戳)的解决方法。

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;