国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

淺談mysql導出表數據到excel關于datetime的格式問題

瀏覽:90日期:2022-06-14 17:07:55

最近用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,不會在把日期識別成日期格式,而變成了文本格式,這樣就能展示自己想要的風格的日期了

淺談mysql導出表數據到excel關于datetime的格式問題

補充知識:將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中,問題得到解決。詳細解決方法請見下方。

淺談mysql導出表數據到excel關于datetime的格式問題

解決方法

1.導入前,在excel中修改單元格格式,設置為自定義,類型為yyyy/m/d h:mm:ss,并保存文件。

淺談mysql導出表數據到excel關于datetime的格式問題

2.重新將文件導入到Navicate中即可。

淺談mysql導出表數據到excel關于datetime的格式問題

以上這篇淺談mysql導出表數據到excel關于datetime的格式問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: excel
相關文章:
主站蜘蛛池模板: 衡水市| 青浦区| 南陵县| 通榆县| 大庆市| 兴业县| 青田县| 资阳市| 仁布县| 永济市| 沙湾县| 阜城县| 偏关县| 高安市| 揭东县| 江华| 临猗县| 敖汉旗| 芦溪县| 土默特左旗| 肥城市| 扬州市| 兴安盟| 门头沟区| 巴里| 东莞市| 宝应县| 靖安县| 河北省| 周宁县| 甘南县| 宜阳县| 红原县| 出国| 大石桥市| 巩义市| 明水县| 额济纳旗| 五寨县| 白河县| 新宁县|