1. 程式人生 > 其它 >資料庫儲存時間

資料庫儲存時間

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- 不要用字串儲存時間

  1. 字串佔用的空間更大!
  2. 字串儲存的日期比較效率比較低(逐個字元進行比對),無法用日期相關的 API 進行計算和比較。
我對任何唾手而得,快速,出自本能,即興,含混的事物沒有信心。我相信緩慢,平和,細水長流的力量,踏實,冷靜。我不相信缺乏自律精神和不自我建設,不努力,可以得到個人或集體的解放。