Oracle 10g日期時間函式

2022-04-03 21:30:28 字數 3026 閱讀 4426

--add_months(d,n):返回特定日期時間d之後或之前的n個月所對應的日期時間。n為正整數表示之後,n為負整數表示之前

select add_months(sysdate, -5) from dual;輸出:2010-08-26 13:24:28

--current_date:返回當前會話時區所對應的日期時間

select current_date from dual; 輸出:2011-01-26 13:32:28

--current_timestamp:返回當前會話時區的日期時間

select current_timestamp from dual;輸出:26-1月 -11 01.35.25.996000 下午 +08:00

--localtimestamp:返回當前會話時區的日期時間

select localtimestamp from dual;輸出:26-1月 -11 02.10.39.209000 下午

--systimestamp:返回當前系統的日期時間及時區

select systimestamp from dual;輸出:26-1月 -11 02.50.46.030000 下午 +08:00

--to_timestamp(char[fmt[,'nls_param']])用於將符合特定日期和時間格式的字串轉變為timestamp型別

select to_timestamp('11-1月-26') from dual;輸出:11-1月 -26 12.00.00.000000000 上午

--to_timestamp_tz(char[fmt[,'nls_param'])用於將符合日期和時間格式的字串轉變為timestamp with time zone型別

select to_timestamp_tz('2011-01-26','yyyy-mm-dd') from dual;輸出:26-1月 -11 12.00.00.000000000 上午 +08:00

--dbtimezone:返回資料庫所在時區

select dbtimezone from dual;輸出:+00:00

--sessiontimezone:返回當前會話所在時區

select sessiontimezone from dual;輸出:+08:00

--extract:用於從日期時間值中取得所需要的特定資料

select extract(year from sysdate) from dual;輸出:2011

--from_dz:用於將特定時區的timestamp值轉變為timestamp with time zone值

select from_tz(to_timestamp('20091101', 'yyyymmdd'), 'america/sao_paulo')  from dual;第一次執行出現ora-01878:在日期時間或間隔中沒有找到指定的字段,然後換個日期比如:20110101,就不會有問題。如果有問題,可以使用下面的sql語句可以避免夏令時造成的異常。

select from_tz(to_timestamp('20110101', 'yyyymmdd'),               tz_offset('america/sao_paulo')) at time zone 'america/sao_paulo'  from dual;輸出:01-1月 -11 12.00.00.000000000 上午 america/sao_paulo

--last_day:返回特定日期所在月份的最後一天

select last_day(sysdate) from dual;輸出:2011-01-31 14:06:03

--months_between(d1,d2):返回日期d1和d2之間相差的月數;如果d1小於d2,則返回負數;如果日期d1和d2的天數相同或都是月底,則返回整數;否則oracle以每月31天為準來計算結果的小數部分

select months_between(sysdate,                      to_date('2011-2-26 10:00:00', 'yyyy-mm-dd hh24:mi:ss'))  from dual;輸出:-1

select months_between(sysdate,                      to_date('2010-12-20 10:00:00', 'yyyy-mm-dd hh24:mi:ss'))  from dual;輸出:1.1993167562724

--new_time(date,zone1,zone2)返回時區一的日期時間所對應的時區二的日期時間

select new_time(sysdate, 'est', 'pst') from dual;輸出:2011-01-26 11:19:59

--next_day(d,char):返回指定日期後的第乙個工作日所對應的日期

select next_day(sysdate,'星期一') from dual;輸出:2011-01-31 14:23:03

--round(d[,fmt])返回日期時間的四捨五入結果。如果fmt指定年度,則7月1日為分界線;如果fmt指定月,則16日為分界線;如果指定天,則中午12:00時為分割線

select round(sysdate, 'year') from dual;輸出:2011-01-01

select round(sysdate, 'month') from dual;輸出:2011-02-01

select round(sysdate, 'day') from dual;輸出:2011-01-30

--trunc(d,[fmt])用於擷取日期時間資料。如果fmt指定年度,則結果為本年度的1月1日;如果fmt指定月,則結果為本月1日

select trunc(sysdate, 'year') from dual;輸出:2011-01-01

select trunc(sysdate, 'month') from dual;輸出:2010-01-01

--tz_offset(time_zone_name||sessiontimezone||dbtimezone):用於返回特定時區與utc(格林威治)相比的時區偏移

select tz_offset('est') from dual;輸出:-05:00

Oracle 10g 時間處理 二

指定的時間加上一分鐘 select to char to date 2011 11 09 15 30 30 yyyy mm dd hh24 mi ss 1 1440 yyyy mm dd hh24 mi ss as newdate from dual 兩個時間相減 select to date 20...

oracle 10g 預設日期格式 修改

oracle 10g預設的日期格式是 日 月 年 如下 sql select sysdate from dual sysdate 29 9月 11 修改方法 alter session set nls date format 這裡加上你要改的格式 sql alter session set nls ...

oracle10g 解除安裝

1 oracle 10g解除安裝軟體環境 1 windows xp oracle 10g2 oracle 安裝路徑為 d oracle 實現方法 1 開始 設定 控制面板 管理工具 服務停止所有 oracle 服務 2 開始 程式 oracle oradb 10g home1 oracle inst...