熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle基本數據類型存儲格式淺析—日期類型(1)

2022-06-13   來源: Oracle 

  Oracle基本數據類型存儲格式淺析(三)——日期類型
 
  
下面通過一個例子進行說明

  SQL> create table test_date (date_col date);

  表已創建

  SQL> insert into test_date values (to_date( :: yyyymmdd hh:mi:ss));

  已創建

  SQL> insert into test_date values (to_date( :: yyyymmdd hh:mi:ss));

  已創建

  SQL> insert into test_date values (to_date( :: syyyymmdd hh:mi:ss));

  已創建

  SQL> insert into test_date values (to_date( :: syyyymmdd hh:mi:ss));

  已創建

  SQL> insert into test_date values (to_date( :: syyyymmdd hh:mi:ss));

  已創建

  SQL> insert into test_date values (to_date( :: syyyymmdd hh:mi:ss));

  已創建

  SQL> insert into test_date values (sysdate);

  已創建

  SQL> insert into test_date values (to_date( :: syyyymmdd hh:mi:ss));
insert into test_date values (to_date( :: syyyymmdd hh:mi:ss))
*
ERROR 位於第 行:
ORA: (全)年度值必須介於 和 + 之間且不為

  SQL> insert into test_date values (to_date( :: yyyymmdd hh:mi:ss));
insert into test_date values (to_date( :: yyyymmdd hh:mi:ss))
*
ERROR 位於第 行:
ORA: (全)年度值必須介於 和 + 之間且不為

  SQL> col dump_date format a
SQL> select to_char(date_col syyyymmdd hh:mi:ss) dump(date_col) dump_date from test_date;

  TO_CHAR(DATE_COLSY DUMP_DATE

:: Typ= Len=:
:: Typ= Len=:
:: Typ= Len=:
:: Typ= Len=:
:: Typ= Len=:
:: Typ= Len=:
:: Typ= Len=:

  已選擇

  通過最後兩條語句已經可以看出Oracle的DATE類型的取值范圍是公元前日至公元而且根據日期的特定要不然是公元要不然是公元前不會出現年的情況

  日期類型長度是個字節分別表示世紀分和秒

  由於不會出現的情況月和日都是按照原值存儲的月的范圍是日的范圍是

  由於時秒都會出現的情況因此存儲時采用原值加的方式時保存為時保存為時保存為分和秒的情況與小時類似小時的范圍是在數據庫中以保存分和秒的范圍都是在數據庫中以保存

  年和世紀的情況相對比較復雜可分為公元前和公元後兩種情況由於最小的世紀的值是(公元前年)最大值是(公元年)為了避免負數的產生oracle把世紀加保存在數據庫中公元世紀保存為公元世紀保存為公元前世紀保存為+())公元前世紀保存為+())

  注意對於公元前雖然已經是公元前了但是表示世紀的前兩位的值仍然是因此這時的保存的世紀的值仍然是世紀的范圍是保存的值是

  年的保存與世紀的保存方式類似也把年的值加上進行保存對於公元年保持為公元年保存為公元年保存為公元年保存為公元前保存為+())公元前保存為+())公元前年保存為+())對於公元前的年保存的值總是小於等於對於公元後的年保存的值總是大於等於年的范圍是保存的值是

  注意一般的世紀都包含了而對於世紀由於包含公元前和公元後兩部分且不包含因此包含了


From:http://tw.wingwit.com/Article/program/Oracle/201311/18156.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.