Oracle中TIMESTAMP的幾種類(lèi)型介紹與實(shí)例
更新時(shí)間:2026-05-04 15:49:01
本文介紹了Oracle中TI??MESTAMP數據類(lèi)(lei)型的類(lèi)型幾種不同的類(lèi)型,并通過(guò)實(shí)例詳細解釋了它們的介紹使用方法和特性。TIMESTAMP在Oracle中用于存儲精確的實(shí)例時(shí)間戳信息,對于需要精確記錄時(shí)間的類(lèi)型數據操作非常重要。
TIMESTAMP類(lèi)型介紹
1、介ヾ(′▽?zhuān)??紹T??IMESTAMP
TIMESTAMP是(???)實(shí)例最基本的TIMESTAMP類(lèi)型,它可以表示從??公元前47??12年1月1日到公元9999年12月31日的任意時(shí)間點(diǎn),精度為秒的小數點(diǎn)后??9位。
2?、TIMESTAMP WITH TIME ZONE
TIM(╥_╥)ESTAMP WITH TIME ZONE類(lèi)型在TIMEST(′▽?zhuān)?)AMP的基礎上增加了時(shí)區信息,可以表示全球任意時(shí)區的時(shí)間點(diǎn),該類(lèi)型在存儲時(shí)會(huì )保存時(shí)區信息,???查(╯°□°)╯詢(xún)時(shí)可以根據當前會(huì )話(huà)的時(shí)區進(jìn)行轉換。
3、TIMESTAMP WITH LOCAL TIME ZONE
TIMESTAMP WITH LOCAL TIˉ\_(ツ)_/ˉME ZONE類(lèi)(/ω\)型與TIMESTAMP WITH TIME ZONE類(lèi)似,也(′?`*)包含時(shí)區信息,不同之(zhi)處在于,TIMESTAMP WITH LOCAL TIMヾ(′?`)?E ZONE在存儲時(shí)會(huì )將時(shí)間轉換為本地時(shí)區,查詢(xún)時(shí)以本地時(shí)區顯示。
INTERVAL YEAR TO MONTH類(lèi)型用于表示一段時(shí)間,單位為年和月,可以使用該類(lèi)型表示5年3個(gè)月。
5、INTERVAL DA??Y TO SECOND
INTERVAL DAY TO SECOND類(lèi)型用于表示一段時(shí)間,單位為天、小時(shí)、分鐘和秒(′▽?zhuān)?),該類(lèi)型可以精確到秒的小數點(diǎn)后9位。
實(shí)例
1、TIMESTAMP類(lèi)型的使用
創(chuàng )建一個(gè)表,包含TIMESTAMP類(lèi)型的字段:??
CREATE TABLE t_timestamp ( id NUMBER, ts TIMESTAMP);
插入數據(ju):
INSERT INTO t_timestamp (id, ts) VALUES(?Д?) (1, TIMESTAMP '2021-01-01 12(╬?益?):30:45.6789');
查詢(xún)數據:
SELECT * FROM t_timestamp;
結果:
ID TS--- --------------------- 1 2021-01-01 12:30:??45.6789
2、TIMESTAMP WITH TIME ZONE類(lèi)型的使用
創(chuàng )建一個(gè)表,包含TIMESTAMP WITH TIME ZONE類(lèi)型的(de)字段:
CREATE TABLE t_timestamp_tz ( id NUMBER, tstz(′_`) TIMESTAMP WITH TIME ZONE);
插入數據:
INSERT INTO t_timestamp_tz (id, tstz) VALUES (1, TIMESTAMP '2021-01-01 12:30:45.6789 +08:00');
查詢(xún)數據:
SELECT * FROM t_timestamp_tz;結果(根據當前會(huì )話(huà)的時(shí)區進(jìn)行轉換):
I??D TSTZ--- ------(╯°□°)╯--------------- 1 2021-01-01 04:30:45.6789
3、T(????)IMESTAMP WITH LOCAL TIME ZONE類(lèi)型的使用
創(chuàng )建一個(gè)表,包含TIMESTAMP WITH LOCAL TIME ZO??NE類(lèi)型的字段:
CREATE TABLE t_timestamp_ltz ( id NUMBE(′▽?zhuān)?R, tslt(′?`*)z TIMESTAMP WITH LOCAL TIME ZONE);插入數據:
INSERT INTO t_timestamp(′ω`)_ltz (id, tsltz) VALUES (1, TIMESTAMP '2021-01-01 12:30:45.6789 +08:00??');
查詢(xún)數據:
S??ELECT * FROM t_time(′?_?`)stamp_ltz;結果(以本地時(shí)區顯示):
ID TSLTZ--- --------------------- 1 2021??-01-01 12:30:45.6789
4、INTERVAL YEA┐(′?`)┌R TO MONTH類(lèi)型的使用
創(chuàng )建一個(gè)表,包含INTERVAL YEAR TO MONTH類(lèi)型的字段:
CREATE TABLE t_interval_year_to_month ( id NUMBER, iytm INTERVAL YEAR(5) TO MONTH);
插入數據:
INSERT INTO t_interval_year_to_month (id,?? iytm) VALUES?? (1, INTERVAL '5-3' YEAR TO MONTH);(′▽?zhuān)?
查詢(xún)數據:
SE??LECT * FROM t_interval??_year_to_month;
結果:
ID IYTM--- ------------ 1 +05-03
創(chuàng )建一個(gè)表,包含I??NTERVAL DAY TO SECOND類(lèi)型的字段:
CREATE TABLE t_interval_day_to_second ( id NUMBER, idts INTERVAL DAY(2) TO SECOND(6));插入數據:
INSERT INTO t_interval_day_to_se(′;ω;`)cond (id, idts) VALUES (1, INTERVAL '10 12:30:45.67??89' DAY TO SECOND)(O_O);??
查詢(xún)數據:
SELECT * FROM t_interval_day_to_second;
結果:
ID IDTS--- ------------------- 1 +10 12:30:45.678900
用法技巧
1、TIMESTAMP類(lèi)型與DATE類(lèi)型之間??的轉換
將TIMESTAMP轉換為DATE(′;д;`):
SELEC??T?? TO_DATE(ts, 'YYYY-MM-DD HH24:MI:SS') FROM t_timestamp;
將DATE轉換為T(mén)IMESTAMP:
SELECT TO_TIMES??TAMP(d, 'YYYY-MM-DD(╬?益?) HH24:MI:??SS') FROM t_da??te;2、TIMESTAMP類(lèi)型與字符串之間的轉換
將TIMESTAMP轉換為字符串:
SELECT TO_CHAR(ts, 'YYYY-MM-DD HH24:MI:SS') FROM t_timestamp;
將字符串轉換為T(mén)IMESTAMP:??
SELECT TO_TIMESTAMP('2021-01-01 12:30:45', 'YYYY-MM-DD HH24:M(′▽?zhuān)?I:SS') FROM dual;3、使用時(shí)區
在插入數據時(shí),可以指定(╯‵□′)╯時(shí)區:
INSERT INTO t_timestamp_tz (id, tstz) VALUES (2, TIMESTAMP '2021-01-??01 12:30:45.6789 AT TIME ZONE 'UTC');
查詢(xún)時(shí),可以指定時(shí)區:
SELECT id,ヽ(′▽?zhuān)?ノ tstz AT TIME ZONE 'UTC' FROM t_timestamp_tz WHERE id = 2;
SELE(???)CT ts + INTERV(′;ω;`)AL '1' DAY FROM t_timestamp;
Oracle中的TIMESTAMP類(lèi)型提供了豐富的日期和時(shí)間表示方法,可以滿(mǎn)足各種場(chǎng)景的需求,通過(guò)本文的介紹和實(shí)例,相信讀者已經(jīng)??對TIMESTAMP類(lèi)型有了更深入的了解,可以更好地在Oracle數據庫中應用這些類(lèi)型??。

