當前位置:首頁 » 存儲配置 » oracle存儲日期

oracle存儲日期

發布時間: 2022-06-11 20:42:25

㈠ 在oracle中, date datetime有什麼區別啊

在oracle中, date、datetime區別為:格式不同、存儲空間不同、精度不同。

一、格式不同

1、date:date支持的范圍是 '1000-01-01' 到'9999-12-31'。

2、datetime:datetime支持的范圍是'1000-01-0100:00:00' 到 '9999-12-3123:59:59'。

二、存儲空間不同

1、date:date型數值用於需要一個日期值而不需要時間部分,佔用3個位元組。

2、datetime:datetime型數值用於需要同時包含日期和時間信息的值,佔用8個位元組。

三、精度不同

1、date:date轉換為datetime會增加精度,時、分、秒、毫秒數都為0。

2、datetime:datetime轉換為date會丟失精度,約去時、分、秒、毫秒數。

㈡ oracle中日期型數據長度有什麼不同

oracle數據類型看起來非常簡單,但用起來會發現有許多知識點,本文是我對ORACLE日期數據類型的一些整理,都是開發入門資料,與大家分享:
註:由於INTERVAL及TIME ZONE實際用得比較少,所以本文內容未涉及這兩個方面。

1、常用日期型數據類型
1.1、DATE
這是ORACLE最常用的日期類型,它可以保存日期和時間,常用日期處理都可以採用這種類型。DATE表示的日期范圍可以是公元前4712年1月1日至公元9999年12月31日
date類型在資料庫中的存儲固定為7個位元組,格式為:
第1位元組:世紀+100
第2位元組:年
第3位元組:月
第4位元組:天
第5位元組:小時+1
第6位元組:分+1
第7位元組:秒+1

1.2、TIMESTAMP(p)
這也是ORACLE常用的日期類型,它與date的區別是不僅可以保
存日期和時間,還能保存小數秒,小數位數可以指定為0-9,默認為6位,所以最高精度可以到ns(納秒),資料庫內部用7或者11個位元組存儲,如果精度為
0,則用7位元組存儲,與date類型功能相同,如果精度大於0則用11位元組存儲。
格式為:
第1位元組:世紀+100
第2位元組:年
第3位元組:月
第4位元組:天
第5位元組:小時+1
第6位元組:分+1
第7位元組:秒+1
第8-11位元組:納秒,採用4個位元組存儲,內部運算類型為整形

註:TIMESTAMP日期類型如果與數值進行加減運算會自動轉換為DATE型,也就是說小數秒會自動去除。

1.3、DATE與TIMESTAMP類型內部存儲驗證

1 create table T
2 (
3 C1 DATE,
4 C2 TIMESTAMP(9)
5 );
6
7 insert into t(c1,c2) values(date'2010-2-12',timestamp'2010-2-12 13:24:52.234123211');
8 insert into t(c1,c2) values(
9 to_date('2010-2-12 10:20:30','YYYY-MM-DD HH24:MI:SS'),
10 to_timestamp('2010-2-12 13:24:52.123456','YYYY-MM-DD HH24:MI:SS.FF6')
11 );
12
13 SQL> select c1,mp(c1) c1_d,c2,mp(c2) c2_d from t;

㈢ oracle能單獨存一個不帶時間的日期么或者是不帶日期的時間

不行,oracle沒有不帶時間的日期,oracle日期時間類型有date和timestamp,都帶日期和時間,文檔中說:
DATE
Valid date range from January 1, 4712 BC, to December 31, 9999 AD. The default format is determined explicitly by the NLS_DATE_FORMATparameter or implicitly by the NLS_TERRITORY parameter. The size is fixed at 7 bytes. This datatype contains the datetime fields YEAR, MONTH, DAY,HOUR, MINUTE, and SECOND. It does not have fractional seconds or a time zone.

TIMESTAMP [(fractional_seconds_precision)]

㈣ oracle 數據類型

按類型分為:字元串類型、數字類型、日期類型、LOB類型、LONG RAW& RAW類型、ROWID & UROWID類型。

在講敘字元串類型前,先要講一下編碼。字元串類型的數據可依編碼方式分成資料庫字元集(CHAR/VARCHAR2/CLOB/LONG)和國際字元集(NCHAR/NVARCHAR2/NCLOB)兩種。資料庫中的字元串數據都通過字元集將字元轉換為數字後(二進制),才存儲到數據塊中。通過不同的編碼集轉換,即便是相同的字元,也可能會轉換成不同的二進制編碼。這也是產生亂碼的原因。資料庫的編碼格式一般是在創建資料庫時指定的。當然也可以修改資料庫的編碼。

一 字元串類型

1.1:CHAR類型 CHAR(size [BYTE | CHAR])

CHAR類型,定長字元串,會用空格填充來達到其最大長度。非NULL的CHAR(12)總是包含12位元組信息。CHAR欄位最多可以存儲2,000位元組的信息。如果創建表時,不指定CHAR長度,則默認為1。另外你可以指定它存儲位元組或字元,例如 CHAR(12 BYTYE) CHAR(12 CHAR).一般來說默認是存儲位元組

注意:資料庫的NLS_CHARACTERSET 為AL32UTF8,即一個漢字佔用三到四個位元組。如果NLS_CHARACTERSET為ZHS16GBK,則一個字元佔用兩個位元組。

1.2: NCHAR類型

這是一個包含UNICODE格式數據的定長字元串。NCHAR欄位最多可以存儲2,000位元組的信息。它的最大長度取決於國家字元集。

1.3 VARCHAR類型

不要使用VARCHAR數據類型。使用VARCHAR2數據類型。

1.4: VARCHAR2類型

變長字元串,與CHAR類型不同,它不會使用空格填充至最大長度。VARCHAR2最多可以存儲4,000位元組的信息。

1.5: NVARCHAR2類型

這是一個包含UNICODE格式數據的變長字元串。 NVARCHAR2最多可以存儲4,000位元組的信息。

二. 數字類型

2.1 NUMBER類型

NUMBER(P,S)是最常見的數字類型,可以存放數據范圍為10130~10126(不包含此值),需要1~22位元組(BYTE)不等的存儲空間。

P 是Precison的英文縮寫,即精度縮寫,表示有效數字的位數,最多不能超過38個有效數字

S是Scale的英文縮寫,可以使用的范圍為-84~127。Scale為正數時,表示從小數點到最低有效數字的位數,它為負數時,表示從最大有效數字到小數點的位數

下面是官方文檔的示例

Actual Data Specified As Stored As
123.89 NUMBER 123.89
123.89 NUMBER(3) 124
123.89 NUMBER(6,2) 123.89
123.89 NUMBER(6,1) 123.9
123.89 NUMBER(3) 124
123.89 NUMBER(4,2) exceeds precision
123.89 NUMBER(6,-2) 100
.01234 NUMBER(4,5).01234
.00012 NUMBER(4,5) .00012
.000127 NUMBER(4,5) .00013
.0000012 NUMBER(2,7) .0000012
.00000123 NUMBER(2,7) .0000012
1.2e-4 NUMBER(2,5) 0.00012
1.2e-5 NUMBER(2,5) 0.00001
2.2 INTEGER類型

INTEGER是NUMBER的子類型,它等同於NUMBER(38,0),用來存儲整數。若插入、更新的數值有小數,則會被四捨五入。

2.3 浮點數

Oracle 資料庫提供了專為浮點數的兩種數值數據類型:

BINARY_FLOAT

BINARY_FLOAT 是 32 位、 單精度浮點數字數據類型。可以支持至少6位精度,每個 BINARY_FLOAT 的值需要 5 個位元組,包括長度位元組。

BINARY_DOUBLE

BINARY_DOUBLE 是為 64 位,雙精度浮點數字數據類型。每個 BINARY_DOUBLE 的值需要 9 個位元組,包括長度位元組。

在數字的列中,浮點數有小數精度。在 BINARY_FLOAT 或 BINARY_DOUBLE 的列中,浮點數有二進制的精度。二進制浮點數支持的特殊值無窮大和 NaN (不是數字)。

2.5 FLOAT類型

FLOAT類型也是NUMBER的子類型。

Float(n),數 n 指示位的精度,可以存儲的值的數目。N 值的范圍可以從 1 到 126。若要從二進制轉換為十進制的精度,請將 n 乘以 0.30103。要從十進制轉換為二進制的精度,請用 3.32193 乘小數精度。126 位二進制精度的最大值是大約相當於 38 位小數精度。

三. 日期類型

日期類型用於存儲日期數據,但是並不是使用一般的格式(2012-08-08)直接存儲到資料庫的。

3.1 DATE類型

DATE是最常用的數據類型,日期數據類型存儲日期和時間信息。雖然可以用字元或數字類型表示日期和時間信息,但是日期數據類型具有特殊關聯的屬性。為每個日期值,Oracle 存儲以下信息: 世紀、 年、 月、 日期、 小時、 分鍾和秒。一般佔用7個位元組的存儲空間。

3.2 TIMESTAMP類型

這是一個7位元組或12位元組的定寬日期/時間數據類型。它與DATE數據類型不同,因為TIMESTAMP可以包含小數秒,帶小數秒的TIMESTAMP在小數點右邊最多可以保留9位

3.3 TIMESTAMP WITH TIME ZONE類型

這是TIMESTAMP類型的變種,它包含了時區偏移量的值

3.4 TIMESTAMP WITH LOCAL TIME ZONE類型

3.5 INTERVAL YEAR TO MOTH

3.6 INTERVAL DAY TO SECOND

四. LOB類型

內置的LOB數據類型包括BLOB、CLOB、NCLOB、BFILE(外部存儲)的大型化和非結構化數據,如文本、圖像、視屏、空間數據存儲。BLOB、CLOB、NCLOB類型

4.1 CLOB 數據類型

它存儲單位元組和多位元組字元數據。支持固定寬度和可變寬度的字元集。CLOB對象可以存儲最多 (4 gigabytes-1) * (database block size) 大小的字元

4.2 NCLOB 數據類型

它存儲UNICODE類型的數據,支持固定寬度和可變寬度的字元集,NCLOB對象可以存儲最多(4 gigabytes-1) * (database block size)大小的文本數據。

4.3 BLOB 數據類型

它存儲非結構化的二進制數據大對象,它可以被認為是沒有字元集語義的比特流,一般是圖像、聲音、視頻等文件。BLOB對象最多存儲(4 gigabytes-1) * (database block size)的二進制數據。

4.4 BFILE 數據類型

二進制文件,存儲在資料庫外的系統文件,只讀的,資料庫會將該文件當二進制文件處理

五. RAW & LONG RAW類型

5.1 LONG類型

它存儲變長字元串,最多達2G的字元數據(2GB是指2千兆位元組, 而不是2千兆字元),與VARCHAR2 或CHAR 類型一樣,存儲在LONG 類型中的文本要進行字元集轉換。ORACLE建議開發中使用CLOB替代LONG類型。支持LONG 列只是為了保證向後兼容性。CLOB類型比LONG類型的限制要少得多。 LONG類型的限制如下:

1.一個表中只有一列可以為LONG型。(Why?有些不明白)

2.LONG列不能定義為主鍵或唯一約束,

3.不能建立索引

4.LONG數據不能指定正則表達式。

5.函數或存儲過程不能接受LONG數據類型的參數。

6.LONG列不能出現在WHERE子句或完整性約束(除了可能會出現NULL和NOT NULL約束)

5.2 LONG RAW 類型,能存儲2GB 的原始二進制數據(不用進行字元集轉換的數據)

5.3 RAW類型

用於存儲二進制或字元類型數據,變長二進制數據類型,這說明採用這種數據類型存儲的數據不會發生字元集轉換。這種類型最多可以存儲2,000位元組的信息

六. ROWID & UROWID類型

在資料庫中的每一行都有一個地址。然而,一些錶行的地址不是物理或永久的,或者不是ORACLE資料庫生成的。

例如,索引組織錶行地址存儲在索引的葉子,可以移動。

例如,外部表的ROWID(如通過網關訪問DB2表)不是​​標準的ORACLE的rowid。

ORACLE使用通用的ROWID(UROWIDs)的存儲地址的索引組織表和外表。索引組織表有邏輯urowids的,和國外表的外urowids。UROWID這兩種類型的存儲在ROWID偽(堆組織的表的物理行id)。

創建基於邏輯的rowid在表中的主鍵。邏輯的rowid不會改變,只要主鍵不改變。索引組織表的ROWID偽UROWID數據類型。你可以訪問這個偽列,你會堆組織表的ROWID偽(即使用一個SELECT …ROWID語句)。如果你想存儲的rowid索引組織表,那麼你就可以定義一列的表型UROWID到列檢索值的ROWID偽。

㈤ oracle能單獨存一個不帶時間的日期么

可以,存儲的時候,不把時間寫上去就可以了。

㈥ oracle 存儲過程 時分秒 日期比較,怎麼寫的

只比較 "時分秒" 的部分的話.

直接
TO_CHAR(日期1, 'HH24MISS') > TO_CHAR(日期2, 'HH24MISS')
這種方式來比較。

如果是 要比較日期的話, 那麼直接
日期1 > 日期2
這種方式來比較。

㈦ ORACLE數據類型 日期時間

oracle中沒有你說的這種短日期,最短的也就是date,不過他可以精確到時、分、秒。如果你想存短日期數據,可以定義為date類型,存儲的時候,使用trunc函數來截取插入的時間,截取到整天。這樣時 分 秒 都是00 00 00,
oracle中的時間類型只有date和TIMESTAMP,TIMESTAMP是比date更精確的類型。

㈧ oracle 存儲日期精確到哪位

日期類型(DATE)精確到秒。
時間戳類型(TIMESTAMP)精確到秒的小數點後6位,不過不是受操作系統限制中的主機振盪頻率限制,windows就精確不到小數後6位。

㈨ 怎樣在ORACLE的表中插入系統日期比如說2008-06-02,不要時間!

據樓主所說,估計你保存
日期
的欄位類型應該是date類型。
你可以寫成:
insert
into
table_income
values
(22,1001,111,
to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')
to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd');
就不會報錯了!

㈩ oracle 資料庫日期格式怎麼只要年月日

可通過用PL/SQL來改變日期格式。

1、登錄PL/SQL。

2、登錄後,點擊菜單欄,工具—首選項。

3、左側列表找到「日期/時間」。

4、可通過右側的各種方式進行自定義的格式和自帶的格式來進行修改,修改後點擊「確定」按鈕保存即可。

熱點內容
日服lol掛機腳本 發布:2025-01-11 02:51:49 瀏覽:917
反編譯器英語 發布:2025-01-11 02:51:03 瀏覽:251
lD加密 發布:2025-01-11 02:50:20 瀏覽:643
求1到20的階乘的和c語言 發布:2025-01-11 02:34:10 瀏覽:570
安卓用什麼簡譜軟體 發布:2025-01-11 02:34:10 瀏覽:741
製作奇跡腳本 發布:2025-01-11 02:33:27 瀏覽:815
網易雲音樂腳本 發布:2025-01-11 02:22:56 瀏覽:608
java軟體開發培訓怎麼樣 發布:2025-01-11 02:17:53 瀏覽:194
md5加密優點 發布:2025-01-11 02:12:52 瀏覽:436
讀取文件夾所有文件名 發布:2025-01-11 02:12:50 瀏覽:682