首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL CONVERT() 字符集轉換函數:語法、標準 SQL 相容、傳統模式下 0 日期處理

     編輯:MySQL 資料庫相關知識

CONVERT() 用於不同字符集間的資料轉換,符合標準 SQL 規範。本文說明語法、範例、標準相容性、傳統模式下 '0000-00-00' 日期轉換行為。

語法

CONVERT(expr USING transcoding_name)
  • transcoding_name:目標字符集名(MySQL 中轉碼名等同字符集名)

範例

-- 字串常數轉換
SELECT CONVERT(_latin1'Müller' USING utf8);

-- 表欄位轉換寫入新表
INSERT INTO utf8table (utf8column)
SELECT CONVERT(latin1field USING utf8) FROM latin1table;

標準 SQL 相容性

  • CONVERT(... USING ...) 符合 SQL 標準
  • 另一種形式 CONVERT(expr, type)(類型轉換)為 MySQL 擴展

傳統模式下 0 日期轉換

-- 傳統模式
SELECT CONVERT('0000-00-00', DATE);
-- 結果:NULL + Warning
  • 嚴格模式會報錯
  • 建議避免使用 '0000-00-00',改用 NULL 或有效日期

相關函數對照

實務建議

  • ✅ 資料遷移時統一用 CONVERT(... USING utf8mb4)
  • ✅ 表級轉換:ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4
  • ✅ 連線字串指定 charset=utf8mb4 避免隱含轉換
  • ⚠️ 大表轉換鎖表久,考慮 pt-online-schema-change 或 gh-ost
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數用途標準性
CONVERT(expr USING charset)字符集轉換標準 SQL
CAST(expr AS type)型別轉換標準 SQL
CONVERT(expr, type)型別轉換MySQL 擴展