oracle系統函式(日期函式)
呼叫日期函式時,首先要明確兩個概念,時間戳和日期是不同的,日期中包括年月日但不包括小時分鐘秒,時間戳包括年月日小時分鐘秒。在oracle中,一般情況下,函式中包含
date字元的和日期有關,包含timestamp的函式和時間戳有關(時間戳可以理解為時間)。oracle中,日期一般以天為基本單位,時間相減時結果單位為天,時間與數字相加時,預設加對應數字的天數。
一、呼叫時無參無括號時間函式
1.返回系統當前日期sysdate
--該函式返回值沒有時間戳
select sysdate from dual;
2.返回會話中的日期和時間localtimestamp
--不包括時區
select localtimestamp from dual;
3.返回會話時區中的當前日期和時間current_timestamp
--包括時區
selectcurrent_timestamp
from dual;
4.返回當前會話時區中的當前日期current_date
selectcurrent_date
from dual;
5.返回資料庫時區設定dbtimezone
select dbtimezone from dual;
6.返回當前會話時區sessiontimezone
select sessiontimezone from dual;
7.變動日期時間數值interval
--設定數值代表秒,分,小時,天,月,年
例如:interval '1' second 1秒
interval '1' minute 1分
interval '1' hour 1小時
interval '1' day 1天(系統預設)
interval '1' month 1月
interval '1' year 1年
select trunc(sysdate)+(interval '1' second),--
加1s trunc(sysdate)+(interval '
1' hour),--
加1個小時
trunc(sysdate)+(interval '1'
day),--
加1天 trunc(sysdate)+1--
加1天from dual;
二、呼叫時有括號的日期函式
1.返回指定月數後的日期add_months()
select add_months(sysdate,3) from dual;
等價於
select trunc(sysdate)+interval '3'month
from dual;
2.返回本月最後一天的日期last_day()
select last_day(sysdate) from dual;
返回本月第一天
select trunc(sysdate,'month
') from dual;
3.返回2個日期間隔月數month_between()
select months_between(sysdate,to_date('2015-09-01
','yyyy-mm-dd
'))
from dual;
4.四捨五入後的期間第一天round()
selectsysdate,
round(sysdate),--
最近0點日期
round(sysdate,'
day'),--
最近星期日
round(sysdate,'
month
'),--
最近月初
round(sysdate,'
q'),--
最近季出日期
round(sysdate,'
year
')--
最近年初日期
from dual;
5.返回日期所在期間的第一天trunc()
select trunc(sysdate),--今天日期
trunc(sysdate,'
day'),--
本週星期日,等價於trunc(sysdate,'d')和trunc(sysdate,'d')
trunc(sysdate,'
month
'),--
本月初,若trunc(sysdate,'m')和trunc(sysdate,'m')則執行出錯
trunc(sysdate,'
q'),--
本季初日期
trunc(sysdate,'
year
')--
本年初日期,等價於trunc(sysdate,'y')和trunc(sysdate,'y')
from dual;
6.返回下週某一天的日期next_day(),可以返回下週的周一到週日
selectsysdate,
next_day(sysdate,
'星期一
'),--
返回下週星期一
next_day(sysdate,'
星期二')--
返回下週星期二
from dual;
7.提取時間日期中資料extract()
--提取小時,分鐘,秒時需要加上timestamp
selectextract(minute
from
timestamp
'2015-2-16 2:38:40
'),--
timestamp時間戳
extract(hour from
timestamp
'2015-2-16 2:38:40'),
--extract(hour from timestamp(sysdate)),錯誤
extract(hour from localtimestamp),--
返回值錯誤
extract(hour from
current_timestamp
), extract(
dayfrom sysdate),--
日 extract(month
from
sysdate),
extract(
year
from
sysdate)
from dual;
總結:關於日期的函式還是挺多的,但是常用的一般為sysdate,localtimestramp,trunc,interval和extract,重點掌握這些應該足夠了,其他不常用的可以用的時候再查詢。
oracle 單行函式 日期函式
1.按天加 2.month between準確計算日期相差月份 select hire date,trunc sysdate hire date as 日期相減後,3.add months 月份新增 next day 得到下週某天的日期 last day 得到某月最後一天 select add mo...
oracle 日期常用函式 日期運算
oracle 日期常用函式 日期運算 1日期運算 23 1.更改日期顯示的format 4ex.5alter session setnls date format yyyy mm dd 6階段作業已被更改 78 select sysdate from dual 910 sysdate 11 1220...
常用函式 日期函式
對日期的處理,一般在有日期限制的共享 商業軟體中經常使用到。如果你打算編寫一款有日期限制的軟體,熟悉使用下面的函式即可以實現。1.date 功能說明 返回當前的日期。procedure tform1.button1click sender tobject begin label1.caption 今...