- 我們看看這幾個數據庫中(mysql、oracle和sqlserver)如何表示時間
- mysql數據庫:它們分別是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:mm:ss”格式表示的時間值 datetime: “yyyy-mm-dd hh:mm:ss”格式 timestamp: “yyyymmddhhmmss”格式表示的時間戳值 year: “yyyy”格式的年份值。
- date “1000-01-01”到“9999-12-31” 3字節
- time “-838:59:59”到“838:59:59” 3字節
- datetime “1000-01-01 00:00:00” 到“9999-12-31 23:59:59” 8字節
- timestamp 19700101000000 到2037 年的某個時刻 4字節
- year 1901 到2155 1字節
- oracle數據庫:
- Date類型的內部編碼為12
- 長度:占用7個字節
- 數據存儲的每一位到第七位分別為:世紀,年,月,日,時,分,秒
- TIMESTAMP是支持小數秒和時區的日期/時間類型。對秒的精確度更高
- TIMESTAMP WITH TIME ZONE類型是TIMESTAMP的子類型,增加了時區支持,占用13字節的存儲空間,最后兩位用於保存時區信息
- INTERVAL 用於表示一段時間或一個時間間隔的方法.在前面有多次提過.INTERVAL有兩種類型.
- YEAR TO MONTH 能存儲年或月指定的一個時間段.
- DATE TO SECOND存儲天,小時,分鍾,秒指定的時間段.
- sql server:datetime和smalldatetime
- datetime數據類型所占用的存儲空間為8個字節,其中前4個字節用於存儲1900年1月1日以前或以后的天數,數值分正負,正數表示在此日期之后的日期,負數表示在此日期之前的日期;后4個字節用於存儲從此日零時起所指定的時間經過的毫秒數。
- smalldatetime數據類型使用4個字節存儲數據。其中前2個字節存儲從基礎日期1900年1月1日以來的天數,后兩個字節存儲此日零時起所指定的時間經過的分鍾數。
- smalldatetime數據類型與datetime數據類型相似,但其日期時間范圍較小,從1900年1月1日到2079年6月6日。此數據類型精度較低,只能精確到分鍾,其分鍾個位為根據秒數四舍五入的值,即以30秒為界四舍五入。