在 MySQL 中,TIMESTAMP
和 DATETIME(6)
都是用于存儲日期和時間的數據類型,但它們在存儲范圍、時區處理、存儲方式等方面有顯著區別。
1. 核心區別對比
特性 | TIMESTAMP | DATETIME(6) |
---|---|---|
存儲范圍 | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC(受限于 32 位時間戳) | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59.999999 (范圍大得多) |
時區處理 | 存儲時會自動轉換為 UTC,查詢時根據當前會話時區自動轉回本地時間(依賴時區設置) | 按實際輸入的時間字符串存儲,不涉及時區轉換(時區無關) |
存儲精度 | 默認到秒,支持 TIMESTAMP(n) 擴展到微秒(n=0~6 ),如 TIMESTAMP(6) | 支持微秒級精度(DATETIME(6) 表示精確到微秒) |
存儲大小 | 4 字節(基礎秒數)+ 額外字節(微秒部分,如 |