mysql輸出中文時間 MySQL 中文亂碼問題

2021-10-17 20:42:19 字數 1660 閱讀 9114

引言

在 mysql 8 之前的版本中,mysql 的預設字符集一直是 latin1,這種預設的字符集編碼方式是不支援中文的,可以說這對於使用漢語的中國程式設計師來說很不友好。雖然可以通過修改字符集編碼方式為 utf-8 來支援中文,但是需要在很多地方修改字符集編碼是一件讓人心煩的事情,一旦忘記修改就會出現討厭的中文亂碼問題。

好訊息是 mysql 8 終於將該死的預設的字符集編碼方式 latin1 設定為 utf-8,這算是對中國程式設計師做了一件好事。

檢視 mysql 字串編碼方式

開啟 cmd 視窗,輸入 mysql 登入命令啟動 mysql 客戶端

mysql -uroot -p123456

檢視字符集編碼

mysql> show variables like 'collation_%';

| variable_name | value |

| collation_connection | utf8_general_ci |

| collation_database | utf8_general_ci |

| collation_server | utf8_general_ci |

3 rows in set, 1 warning (0.01 sec)

mysql> show variables like 'character_set%';

| variable_name | value |

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | e:\program files (x86)\mysql-8.0.22\share\charsets\ |

8 rows in set, 1 warning (0.11 sec)

預設是 latin1 編碼,會導致中文亂碼。

修改字符集編碼

修改資料庫的編碼

mysql> alter database 資料庫名 character set utf8;

修改資料庫表的編碼

mysql> alter table 表名 convert to character set utf8 collate utf8_general_ci;

修改配置檔案字符集編碼

開啟 mysql 的 my.ini 配置檔案,修改如下:

[mysql]

default-character-set=utf8

[client]

default-character-set=utf8

[mysqld]

default-character-set=utf8

character_set_server=utf8

init_connect='set names utf8'

重啟 mysql,這樣可以確保 mysql 預設字符集編碼方式是 utf8

mysq比較時間

在oracle中使用時間函式to date習慣了,在oracle中時間的加減也非常簡單,直接加減即可。在mysql中時間的函式很多,非常自由。在專案中經常用到的就是時間的加減。比如60天前,oracle中直接就是sysdate 60,mysql中就不行。對時間加減的函式是 加adddate 減sub...

mysq中文編碼格式

1 修改資料庫編碼格式 mysql set names utf8 改變資料庫伺服器和客戶端的字符集 mysql alter database mydb character set utf8 更改庫字符集 2 連線字串中指定編碼 useunicode true characterencoding ut...

mysql時間函式中文 Mysql的時間函式

1.本週內的第幾天,從週日開始 mysql select dayofweek 2015 05 25 dayofweek 2015 05 25 2 1 row in set 0.00 sec 2.本月內的第幾天 mysql select dayofmonth 2015 05 25 dayofmonth...