• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅谈mysql导出表数据到excel关于datetime的格式问题

    最近用mysql导出表数据到excel文件,mysql中的datetime类型导出到excel(excel2016)中被excel识别成它自己默认的日期格式了,在mysql中的格式形如 yyyy-mm-dd hh:mm:ss,到了excel变成了 yyyy/m/d h:mm,看起来不太习惯,当然可以通过设置excel单元格格式改成自定义格式 yyyy-mm-dd hh:mm:ss,但是这样多了一个步骤,能不能直接从mysql导出到excel的就是mysql显示的样式呢?当然可以。

    开始猜想是由于mysql中该字段是datetime类型的,导出到excel后excel自动转为它的日期类型,所以可以通过mysql的date_format函数把datetime转为字符串,以为没有问题,结果还是一样的,猜想是对于这种标准日期的字符串的格式excel也会识别成日期格式,于是在导出语句中加上一个字符串的日期,验证了我的猜想。所以就寻思打破这种默认的日期格式但使得它看上去又没什么差别,所以在用date_format转为字符串时,在前面加上一个空格,这样就完美解决了。

    测试用表及测试数据

    CREATE TABLE `users` (
     `username` varchar(255) NOT NULL,
     `create_time` datetime NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    # 插入测试数据
    INSERT INTO `users`(`username`, `create_time`) VALUES 
     ('李四', '2018-10-11 15:54:23'),
     ('张三', '2018-10-12 15:54:14');

    导出excel语句,注意DATE_FORMAT函数里面的格式前面加了个空格(由于表的格式是utf8的,要保证excel打开后不乱码,需要把格式转换为gbk)

    SELECT
     username,
     DATE_FORMAT( create_time, ' %Y-%m-%d %H:%i:%s' ) 
    FROM users 
     INTO OUTFILE '/tmp/user_info.xls' 
     CHARACTER SET gbk;

    大功告成,这样导出的excel,不会在把日期识别成日期格式,而变成了文本格式,这样就能展示自己想要的风格的日期了

    补充知识:将Excel文件导入到Navicat Premium中日期变为0000-00-00的解决方案

    问题

    在某些场景下,需要将本地文件导入到Navicat中。笔者今天遇到的问题是,将excel文件成功导入后,一个在excel中原本正确的日期字段在Navicate中却变成了“0000-00-00 00:00:00”,实在是匪夷所思。

    分析

    经过观察发现,该日期字段在excel中似乎没有全部显示,比如本来是2018/10/1 0:01:42,excel中显示为01:42.0,于是尝试在excel中修改了该列的单元格格式,重新导入Navicate中,问题得到解决。详细解决方法请见下方。

    解决方法

    1.导入前,在excel中修改单元格格式,设置为自定义,类型为yyyy/m/d h:mm:ss,并保存文件。

    2.重新将文件导入到Navicate中即可。

    以上这篇浅谈mysql导出表数据到excel关于datetime的格式问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
    • MySQL中datetime和timestamp的区别及使用详解
    • Mysql中的Datetime和Timestamp比较
    • python3实现往mysql中插入datetime类型的数据
    • mysql datetime查询异常问题解决
    • MySql用DATE_FORMAT截取DateTime字段的日期值
    • MySQL时间字段究竟使用INT还是DateTime的说明
    • MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
    • mysql之TIMESTAMP(时间戳)用法详解
    • MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法
    • 解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
    • MySQL 中 datetime 和 timestamp 的区别与选择
    上一篇:阿里云centos7中安装MySQL8.0.13的方法步骤
    下一篇:解决Navicat导入数据库数据结构sql报错datetime(0)的问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    浅谈mysql导出表数据到excel关于datetime的格式问题 浅谈,mysql,导出,表,数据,