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

 更新时间:2020年07月14日 10:38:46   作者:Listening_倾听  
这篇文章主要介绍了浅谈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中的慢查询

    深入了解MySQL中的慢查询

    什么是MySQL慢查询呢?其实就是查询的SQL语句耗费较长的时间。具体耗费多久算慢查询呢?这其实因人而异,有些公司慢查询的阈值是100ms,有些的阈值可能是500ms。本文将通过示例和大家聊聊慢查询的危害和常用场景,感兴趣的可以了解一下
    2022-10-10
  • MySQL启动1053错误解决方法

    MySQL启动1053错误解决方法

    创建mysql服务时,系统已提示创建服务成功,但是net start命令提示启动失败,并在services.msc中提示1053错误
    2012-11-11
  • 一文了解MySQL事务隔离级别

    一文了解MySQL事务隔离级别

    这篇文章主要介绍了一文了解MySQL事务隔离级别,MySQL 事务隔离级别是为了解决并发事务互相干扰的问题的,文章介绍 4 种事物隔离,需要的小伙伴可以学习一下
    2022-07-07
  • MySQL学习之完整性约束详解

    MySQL学习之完整性约束详解

    数据完整性指的是数据的一致性和正确性。完整性约束是指数据库的内容必须随时遵守的规则。本文就来为大家讲讲MySQL中的完整性约束,需要的可以参考一下
    2022-08-08
  • MySQL实例讲解子查询的使用

    MySQL实例讲解子查询的使用

    所谓子查询是指在一个查询中嵌套了其他的若干查询,即在一个SELECT查询语句的WHERE或FROM子句中包含另一个SELECT查询语句,下面这篇文章主要给大家介绍了关于MySQL子查询的相关资料,需要的朋友可以参考下
    2023-03-03
  • 使用use index优化sql查询的详细介绍

    使用use index优化sql查询的详细介绍

    本篇文章是对使用use index优化sql查询进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql datetime查询异常问题解决

    mysql datetime查询异常问题解决

    这篇文章主要介绍了mysql datetime查询异常问题解决的相关资料,这里对异常进行了详细的介绍和该如何解决,需要的朋友可以参考下
    2016-11-11
  • MySQL中外键的创建、约束以及删除

    MySQL中外键的创建、约束以及删除

    这篇文章主要给大家介绍了关于MySQL中外键的创建、约束以及删除的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Linux下将数据库从MySQL迁移到MariaDB的基础操作教程

    Linux下将数据库从MySQL迁移到MariaDB的基础操作教程

    这篇文章主要介绍了将数据库从MySQL迁移到MariaDB的基础操作教程,当然迁移之前不要忘记数据库的备份!需要的朋友可以参考下
    2015-11-11
  • 使用MySQL唯一索引的注意事项及说明

    使用MySQL唯一索引的注意事项及说明

    这篇文章主要介绍了使用MySQL唯一索引的注意事项及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论