資料庫儲存時間
阿新 • • 發佈:2021-12-13
1 Datetime
Datetime是沒有時區資訊的,
DateTime 需要耗費 8 個位元組的儲存空間
DateTime :1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
2 Timestamp
Timestamp 和時區有關。Timestamp 型別欄位的值會隨著伺服器時區的變化而變化,自動換算成相
應的時間,說簡單點就是在不同時區,查詢到同一個條記錄此欄位的值會不一樣。
Timestamp 只需要使用 4 個位元組的儲存空間
Timestamp:1970-01-01 00:00:01 ~ 2037-12-31 23:59:59
3 時區的一些命令
# 檢視當前會話時區 SELECT @@session.time_zone; # 設定當前會話時區 SET time_zone = 'Europe/Helsinki'; SET time_zone = "+00:00"; # 資料庫全域性時區設定 SELECT @@global.time_zone; # 設定全域性時區 SET GLOBAL time_zone = '+8:00'; SET GLOBAL time_zone = 'Europe/Helsinki';
4 數值時間戳
很多時候,我們也會使用 int 或者 bigint 型別的數值也就是時間戳來表示時間。
這種儲存方式的具有 Timestamp 型別的所具有一些優點,並且使用它的進行日期排序以及對比等操作 的效率會更高,跨系統也很方便,畢竟只是存放的數值。缺點也很明顯,就是資料的可讀性太差了,你 無法直觀的看到具體時間。
5其它
5-1- 不要用字串儲存時間
- 字串佔用的空間更大!
- 字串儲存的日期比較效率比較低(逐個字元進行比對),無法用日期相關的 API 進行計算和比較。