MySQL中的時間戳轉換為人類可讀格式需要進行格式化操作。MySQL服務器返回的時間戳是以Unix timestamp格式存儲,即從1970年1月1日UTC開始的秒數。這個時間戳表示經過的秒數,是不包括時區信息的。因此,需要將時間戳轉換為你所在時區的時間。
使用DATE_FORMAT格式化時間戳
MySQL提供了一個日期/時間格式化函數DATE_FORMAT()。它接受兩個參數:要格式化的日期和所需的格式。使用這個函數可以將Unix timestamp格式的時間戳轉換為人類可讀的格式。
例如,將時間戳格式化為年月日格式:
SELECT DATE_FORMAT(FROM_UNIXTIME(1477650568), '%Y-%m-%d');
結果為:
+---------------------+
| DATE_FORMAT(timestamp, '%Y-%m-%d') |
+---------------------+
| 2016-10-28 |
+---------------------+
使用CONVERT_TZ轉換時區
如果你需要將時間戳轉換為你所在時區的時間,可以使用CONVERT_TZ()函數。它接受三個參數:要轉換的日期,要轉換的時區和所需的時區。
例如,將時間戳轉換為美國洛杉磯時區的時間:
SELECT DATE_FORMAT(CONVERT_TZ(FROM_UNIXTIME(1477650568),@@session.time_zone,'America/Los_Angeles'), '%Y-%m-%d %H:%i:%s');
結果為:
+-------------------------------------------------------+
| DATE_FORMAT(CONVERT_TZ(FROM_UNIXTIME(timestamp),'UTC','America/Los_Angeles'), '%Y-%m-%d %H:%i:%s') |
+-------------------------------------------------------+
| 2016-10-27 22:56:08 |
+-------------------------------------------------------+
使用UNIX_TIMESTAMP函數獲取當前時間戳
如果你需要獲取當前時間戳,可以使用UNIX_TIMESTAMP()函數。它返回一個表示當前時間的Unix timestamp格式時間戳。
例如,獲取當前時間戳:
SELECT UNIX_TIMESTAMP();
結果為:
+-----------------+
| UNIX_TIMESTAMP() |
+-----------------+
| 1637625885 |
+-----------------+
總結:格式化Unix timestamp格式的時間戳,需要使用MySQL提供的日期/時間格式化函數DATE_FORMAT();如果需要轉換為你所在時區的時間,可以使用CONVERT_TZ()函數;如果需要獲取當前時間戳,可以使用UNIX_TIMESTAMP()函數。