TIMESTAMP是MySQL中用來存儲和操作日期和時間的數據類型之一。它可以存儲從1970年1月1日00:00:00到2038年1月19日03:14:07之間的時間戳。
在MySQL中,TIMESTAMP數據類型有以下特點和用法:
存儲范圍:TIMESTAMP類型存儲的時間范圍是從1970年1月1日00:00:00到2038年1月19日03:14:07之間的時間戳。它占據4個字節的存儲空間。
自動更新:可以設置TIMESTAMP列在插入或更新行時自動更新為當前時間,使用DEFAULT CURRENT_TIMESTAMP或ON UPDATE CURRENT_TIMESTAMP。
例如,創建一個表時可以設置一個TIMESTAMP列自動更新為當前時間:
CREATE TABLE example (
id INT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
當插入一條新的記錄時,created_at列將自動設置為當前時間。
可以使用CONVERT_TZ函數將UTC時間轉換為特定時區的時間,例如:
SELECT CONVERT_TZ(created_at, 'UTC', 'Asia/Shanghai') AS local_time
FROM example;
這將返回將created_at列從UTC時間轉換為Asia/Shanghai時區的本地時間。
NOW()函數返回當前的日期和時間。
CURRENT_TIMESTAMP()函數返回當前的日期和時間,與NOW()函數功能相同。
UNIX_TIMESTAMP()函數返回當前的Unix時間戳(從1970年1月1日00:00:00開始的秒數)。
例如,可以使用NOW()函數在INSERT語句中插入當前時間:
INSERT INTO example (id, created_at)
VALUES (1, NOW());
SELECT DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s') AS formatted_time
FROM example;
這將返回將created_at列格式化為YYYY-MM-DD HH:MM:SS格式的時間。
總結:TIMESTAMP是MySQL中用于存儲和操作日期和時間的數據類型。它可以自動更新為當前時間,并且可以使用內置函數進行操作和格式化。在檢索時會根據當前會話的時區進行轉換。