MySQL 的 CONVERT_TZ(~) 方法將日期時間值從一個時區轉換為另一個時區。
參數
1. datetime | datetime
從一個時區轉換為另一時區的日期時間。
2. from_tz | timezone
要轉換的原始時區。
3. to_tz | timezone
要轉換到的時區。
返回值
轉換為時區的日期時間值作為 to_tz 參數傳遞。
例子
基本用法
要將東京當前本地時間轉換為 EST(東部標準時間):
SELECT NOW(), CONVERT_TZ(NOW(), 'Asia/Tokyo','America/New_York');
+---------------------+----------------------------------------------------+
| NOW()               | CONVERT_TZ(NOW(), 'Asia/Tokyo','America/New_York') |
+---------------------+----------------------------------------------------+
| 2020-05-19 22:32:17 | 2020-05-19 09:32:17                                |
+---------------------+----------------------------------------------------+
我們將東京的當前時間轉換為紐約的等效時間。
要使用偏移格式轉換時間:
SELECT CONVERT_TZ('2020-04-26 17:32:11', '+08:00', '-05:00');
+-------------------------------------------------------+
| CONVERT_TZ('2020-04-26 17:32:11', '+09:00', '-05:00') |
+-------------------------------------------------------+
| 2020-04-26 04:32:11                                   |
+-------------------------------------------------------+
這裏+08:00代表東京時間,而-05:00代表紐約時間。這些都是與 UTC(協調世界時)的偏移量。
故障排除
Linux 和 macOS
如果示例中的上述查詢返回 NULL ,請確保您已將時區表加載到 mysql 中。 MySQL 安裝過程會創建時區表,但不會加載它們。因此,我們必須通過在終端命令行中運行以下命令來手動加載它們:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
在此,請注意以下事項:
- 
mysql_tzinfo_to_sql是將信息加載到時區表的程序。 - 
/usr/share/zoneinfo是我們獲取說明時區的文件集的地方。 - 
-u是用戶名的標誌。該帳戶必須具有修改 mysql 係統架構中的表的權限。 - 
-p是密碼標誌。 
如果您遇到以下錯誤:
Warning: Unable to load '/usr/share/zoneinfo/+VERSION' as time zone.
您可以通過添加強製開關來覆蓋它:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql --force
Windows
如果示例中的上述查詢返回 NULL ,則需要繼續執行以下步驟將信息加載到 mysql 中的時區表中:
1.從https://dev.mysql.com/downloads/timezones.html下載時區包文件
2. 解壓文件並將它們移動到 MySQL 目錄(例如 C:\ProgramData\MySQL\MySQL Server 8.0\data\mysql )
3. 使用以下命令加載文件中的時區信息:
mysql -u root -p mysql < file_name
在此,請注意以下事項:
- 
-u是用戶名的標誌。該帳戶必須具有修改 mysql 係統架構中的表的權限。 - 
-p是密碼標誌。 - 
file_name是步驟 2 中解壓的文件的名稱。 
4. 重新啟動MySQL 服務器。
相關用法
- MySQL CONVERT_TZ()用法及代碼示例
 - MySQL CONVERT( )用法及代碼示例
 - MySQL CONV( )用法及代碼示例
 - MySQL CONV方法用法及代碼示例
 - MySQL CONCAT()用法及代碼示例
 - MySQL CONCAT方法用法及代碼示例
 - MySQL CONCAT_WS方法用法及代碼示例
 - MySQL CONNECTION_ID( )用法及代碼示例
 - MySQL CONCAT_WS()用法及代碼示例
 - MySQL COUNT()用法及代碼示例
 - MySQL COT()用法及代碼示例
 - MySQL COMPRESS( )用法及代碼示例
 - MySQL COT方法用法及代碼示例
 - MySQL COALESCE()用法及代碼示例
 - MySQL COS()用法及代碼示例
 - MySQL COUNT方法用法及代碼示例
 - MySQL COS方法用法及代碼示例
 - MySQL CURTIME()用法及代碼示例
 - MySQL Convert()用法及代碼示例
 - MySQL CEIL方法用法及代碼示例
 - MySQL CHARACTER_LENGTH()用法及代碼示例
 - MySQL CEILING()用法及代碼示例
 - MySQL CURRENT_TIME()用法及代碼示例
 - MySQL CHAR_LENGTH()用法及代碼示例
 - MySQL CHAR and VARCHAR用法及代碼示例
 
注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | CONVERT_TZ method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
