sysdate()獲取的日期精確到秒
select add_months(to_date('2010-2-27','yyyy-mm-dd'),1) new_date from dual結果:2010-3-27
當某年的2月只有28天, 那麼新增乙個月後,返回3月的最後一天
select add_months(to_date('2010-2-28','yyyy-mm-dd'),1) new_date from dual結果:2010-3-31
如果增加月份之後的日期為非法日期,將返回該月的最後一天
select add_months(to_date('2010-1-30','yyyy-mm-dd'),1) new_date from dual結果:2010-2-28
select last_day(to_date('2010-2-28','yyyy-mm-dd')) new_date from dual結果:2010-2-28
months_between()返回2個日期相減所得的月數,返回值不一定是整數
select months_between(to_date('2010-4-4','yyyy-mm-dd'),to_date('2010-2-6','yyyy-mm-dd')) as new_date from dual結果:1.93548….
如果第乙個引數小於第二個引數,返回值就是負數
select next_day(to_date('2010-4-4','yyyy-mm-dd'),2) new_date from dual結果:2010-4-5
第二個引數代表星期幾,在oracle中,1代表星期日,2代表星期一…
trunc(日期,擷取格式)
select trunc(sysdate,'dd') new_date from dual結果:2010-4-5
select trunc(sysdate,'mm') new_date from dual結果:2010-4-1
trunc(sysdate,』mm』)將當前日期擷取到月,獲得結果2010-4-1,即當前月份的第一天
select trunc(sysdate,'mi') new_date from dual結果:2010-4-5 15:44:00
trunc(sysdate,』mi』)將當前日期擷取到分鐘,忽略分鐘以後的部分。擷取日期實際是將其中某些資訊位置為0
select sessiontimezone,to_char(current_date,'yyyy-mm-dd hh:mi:ss') result from dual結果:+08:00 2010-4-5 4:25:26
sessiontimezone返回當前時區,current_date返回當前日期
select sessiontimezone,current_timestamp from dual結果:+08:00 05-4月 -10 04.51.11.640000 下午 +08:00
select extract(網域名稱,from 日期)
select extract(month from sysdate) new_month from dual結果;4
注意:在日期型中無法分解出小時、分鐘、秒等資訊。想要獲得小時等資訊,則必須使用日期時間型作為資料來源
select extract(hour from systimestamp) new_month from dual結果:14
注意:此時的小時資訊是零時區的標準時間
可以自行建立乙個函式獲得乙個日期的所有資訊
create or replace function get_field(p_date date,p_format varchar2)
return varchar2
isval varchar2(10);
tmp_date varchar2(20);
begin
tmp_date:=to_char(p_date,'yyyy-mm-dd hh24:mi:ss');
if lower(p_format)='year' then
val:=substr(tmp_date,1,4);
end if;
if lower(p_format)='month' then
val:=substr(tmp_date,6,2);
end if;
if lower(p_format)='day' then
val:=substr(tmp_date,9,2);
end if;
if lower(p_format)='hour' then
val:=substr(tmp_date,12,2);
end if;
if lower(p_format)='minute' then
val:=substr(tmp_date,15,2);
end if;
if lower(p_format)='second' then
val:=substr(tmp_date,18,2);
end if;
return val;
end;select to_char(sysdate,'yyyy-mm-dd') new_date from dual結果:2010-4-5
Oracle中數值型及處理方法
number型別的精度表示可以標識資料精確度的位數。對於數字13245.977,當精確到小數點後2位,資料為12345.98,此時精度為7。而當精確到小數點前2位,資料為12300,此時精度為3,因為有3個數字對資料的準確度作出貢獻 number型別中。小數字數可正可負,當為負數時,表示將數字精確到...
Oracle學習筆記 日期型處理 Date 。
oracle中最常用的日期型別為date和timestamp date date型別包含了以下資訊 century 世紀 year 年份 month 月份 day 天數 hour 小時 minute 分鐘 second 秒 oracle日期的格式為 yyyy mm dd hh24 mi ss.sel...
Oracle時間日期處理方法
1 用於擷取年 月 日 時 分 秒 extract 函式 extract year from sysdate year extract month from sysdate month extract dayfrom sysdate day extract hour from sysdate hou...