天天看點

資料庫日期字段采用String或Date等原生類型的優劣勢對比

資料庫中常用的日期類型:

日期類型 存儲空間 日期格式 日期範圍
date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes  YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2037-12-31 23:59:59
time 3 bytes HH:MM:SS -838:59:59 ~ 838:59:59
varchar 14+ bytes YYYYMMDDHHMMSS

    字元串不是一個很高效的資料類型,占用存儲空間大,數值之間compare是逐個字元比對,比較慢,唯一的優勢是展示比較直接。

    timestamp和其他資料庫原生支援的日期類型,它們在實際存儲和查詢的時候其實都是整數,是以非常高效。相對于varchar占用的的記憶體也更少。

小結:資料庫存儲日期,建議采用原生的日期類型,效率和功能上肯定都有很高的保證;如果不支援日期類型的話,就用長整型Long或者大整數BIGINT。采用varchar存儲是一種比較偷懶的做法,但是考慮到代碼可能要移植到不同的資料庫上,在相容性上有更高的保證。