天天看點

oracle 使用 date timestamp 而不使用varchar2()的好處

oracle資料庫,表示日期資料基本是date型,隻有年月的用varchar2或者char,好處見下:

1、資料規範。date對合法日期型會校驗,包括閏年2月這種。避免字元型變量産生的某月32号,日期長度不對,日期格式不統一等問題。曾經有過痛苦經曆,面對字元型的2013111這種資料不知道是11月1日還是1月11日,隻想說日…

2、檢索效率。如果你經常在where後面帶這個日期,或者要給這個字段建索引。你可以試試date和char的差别,更别說分區索引了。

3、計算友善。當你計算兩個日期差幾天,你是願意對着char寫個function判斷大月小月閏月呢,還是直接拿date變量date1-date2呢?當你要批量把日期往後延50天的話,你是願意寫一大段存儲過程呢,還是直接update table set date1=date1+50呢?

如果date型變量就是一個char(14)的話,那根本不值得被單獨建立出來,既然存在,那就一定有特殊意義和使用價值。