一、interval year to month 型別
格式:
該資料型別常用來表示一段時間差, 注意時間差只精確到年和月, precision為年或月的精確域, 有效範圍是0到9, 預設值為2
[
] 為可選項
| 表示任選其中一項
interval
'integer [- integer]' [
(precision)]
[to ]
案例1:
表示123年2個月。「year(3)」 表示年的精度為3, 如果year(n), n<3就會報錯,ora-01873間隔的前導精度太小(注意預設是2)
select
interval
'123-2'
year(3
)tomonth
from dual;
+123
-02
案例2:
如果前面沒有寫減號,可以省略後面的』to 』,如果要寫後面的必須跟前面的統一
select
interval
'12'
year
from dual;+12
-00--表示12年
select
interval
'12'
year
toyear
from dual;+12
-00--表示12年
select
interval
'9'month
from dual;+00
-09--表示9個月
select
interval
'9'month
tomonth
from dual;+00
-09--表示9個月
案例3:
表示12個月,一年12月,自動換算成1年
select
interval
'12'
month
from dual;+01
-00
案例4:
year和month的預設精度為2,month 的精度是換算成年來看的
select
interval
'1200'
month
from dual;
--ora-01873間隔的前導精度太小
select
interval
'1200'
month(3
)tomonth
from dual;
+100-00
select
interval
'1199'
month
from dual;+99
-11
案例5:
select
interval
'5-11'
year
tomonth
+interval
'20'
month
from dual;+07
-07--表示 5年11個月+20個月=7年7個月
select sysdate -
(interval
'1'month
)from dual;
2021/2
/913:14:44
--表示當前時間前乙個月時間
二、interval day to second 型別
格式:
leading_precision值的範圍是0到9, 預設是2; time_expr的格式為:hh[:mi[:ss[.n]]] or mi[:ss[.n]] or ss[.n], n表示微秒
範圍值:
[
] 為可選項
| 表示任選其中一項
interval
'' [
( leading_precision )]|
second
[( leading_precision [
, fractional_seconds_precision ]
)] } [
to ]
案例1:
select
interval
'5 5:20:12.15'
dayto
second(3
)from dual;+05
05:20:12.150
--表示5天5小時20分12.150秒
select
interval
'5 5:20:12.15'
dayto
second(2
)from dual;+05
05:20:12.15
--表示5天5小時20分12.15秒
案例2:
表示5天5小時20分
select
interval
'5 5:20'
dayto
minute
from dual;+05
05:20:00
案例3:
表示365天5小時, 「day(3)」 表示天的精度為3, 如果day(n), n<3就會報錯,ora-01873間隔的前導精度太小(注意預設是2)
select
interval
'365 5'
day(3)
tohour
from dual;
+365
05:00:00
案例4:
表示365天
select
interval
'365'
day(3)
from dual;
+365
00:00:00
案例5:
表示5小時20分12.15555秒
select
interval
'5:20:12.15555'
hour
tosecond(5
)from dual;+00
05:20:12.15555
案例6:
表示5小時20分
select
interval
'5:20'
hour
tominute
from dual;+00
05:20:00
案例7:
select
interval
'30.12345'
second(4
)from dual;
+0000
00:00:30.123450
--表示30.123450秒
select
interval
'30.12345'
second(2
,4)from dual;+00
00:00:30.1235
--表示30.1235秒, 因為該地方秒的後面精度設定為4, 要進行四捨五入
案例8:
表示1天,一天24小時,自動換算成1天
select
interval
'24'
hour
from dual;+01
00:00:00
案例9:
select
interval
'20'
day-
interval
'21'
hour
from dual;
+000000019
03:00:00.000000000
--表示 20天-21小時=19天3小時
select sysdate -
(interval
'1'hour
)from dual;
2021/3
/912:14:44
--表示當前時間前乙個小時時間
oracle中的角色
oracle 中的角色 一 何為角色?我在前面的篇幅中說明許可權和使用者。慢慢的在使用中你會發現乙個問題 如果有一組人,他們的所需的許可權是一樣的,當對他們的許可權進行管理的時候會很不方便。因為你要對這組中的每個使用者的許可權都進行管理。有乙個很好的解決辦法就 是 角色。角色是一組許可權的集合,將角...
Oracle中的約束
資料的完整性用於確保資料庫資料遵從一定的商業和邏輯規則,在oracle中,資料完整性可以使用約束 觸發器 應用程式 過程 函式 三種方法來實現,在這三種方法中,因為約束易於維護,並且具有最好的效能,所以作為維護資料完整性的首選。1.約束 約束用於確保資料庫資料滿足特定的商業規則。在oracle中,約...
oracle中的序列
oracle中的序列 sequence 的作用相當與sqlserver中的identify作為乙個表的自動增加且唯一標識的列 下面我就用乙個簡單的序列來實現 1.建立序列 create sequence sq sq宣告乙個序列的名稱 start with 1 宣告序列的開始值 immediate b...