資料庫中常用的日期類型:
日期類型 | 存儲空間 | 日期格式 | 日期範圍 |
---|---|---|---|
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存儲是一種比較偷懶的做法,但是考慮到代碼可能要移植到不同的資料庫上,在相容性上有更高的保證。