OracleSQL函数之⽇期函数
sysdate
【功能】:返回当前⽇期。
【参数】:没有参数,没有括号
【返回】:⽇期
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-----------
2015/4/919
add_months(d1,n1)
【功能】:返回在⽇期d1基础上再加n1个⽉后新的⽇期。
【参数】:d1,⽇期型,n1数字型
【返回】:⽇期
SQL> SELECT SYSDATE,ADD_MONTHS(SYSDATE,3) FROM DUAL;
SYSDATE    ADD_MONTHS(SYSDATE,3)
----------- ---------------------
2015/4/9192015/7/919:02:59
last_day(d1)
【功能】:返回⽇期d1所在⽉份最后⼀天的⽇期。
【参数】:d1,⽇期型
【返回】:⽇期
SQL> SELECT SYSDATE,LAST_DAY(SYSDATE),LAST_DAY(TO_DATE('2015/12/01','YYYY/MM/D
D')) FROM DUAL;
SYSDATE    LAST_DAY(SYSDATE) LAST_DAY(TO_DATE('2015/12/01',
----------- ----------------- ------------------------------
2015/4/9192015/4/3019:08:32015/12/31
months_between(d1,d2)
【功能】:返回⽇期d1到⽇期d2之间的⽉数。
【参数】:d1,d2 ⽇期型
【返回】:数字
如果d1>d2,则返回正数
如果d1<d2,则返回负数
SQL> SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2015/01/01','YYYY/MM/DD')),MONTHS
_BETWEEN(SYSDATE,TO_DATE('2015/12/31','YYYY/MM/DD')) FROM DUAL; MONTHS_BETWEEN(SYSDATE,TO_DATE MONTHS_BETWEEN(SYSDATE,TO_DATE
------------------------------ ------------------------------
3.28386872759857              -8.6838732078853
NEW_TIME(dt1,c1,c2)
【功能】:给出时间dt1在c1时区对应c2时区的⽇期和时间
【参数】:dt1,d2 ⽇期型
【返回】:⽇期时间
【参数】:c1,c2对应的时区及其简写
⼤西洋标准时间:AST或ADT
阿拉斯加_夏威夷时间:HST或HDT
英国夏令时:BST或BDT
美国⼭区时间:MST或MDT
美国中央时区:CST或CDT
新⼤陆标准时间:NST
美国东部时间:EST或EDT
太平洋标准时间:PST或PDT
格林威治标准时间:GMT
Yukou标准时间:YST或YDT
【⽰例】
SQL> SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') BJ_TIME,TO_CHAR(NEW_TIME(SYSDATE,'PDT','GMT'),'YYYY/MM/DD HH24:MI:SS') LOS_ANGLES FROM DUAL; BJ_TIME            LOS_ANGLES
------------------- -------------------
2015/04/0919:17:062015/04/1002:17:06
round(d1[,c1])
【功能】:给出⽇期d1按期间(参数c1)四舍五⼊后的期间的第⼀天⽇期(与数值四舍五⼊意思相近)
【参数】:d1⽇期型,c1为字符型(参数),c1默认为j(即最近0点⽇期)
【参数表】:c1对应的参数表:
最近0点⽇期: 取消参数c1或j
最近的星期⽇:day或dy或d
最近⽉初⽇期:month或mon或mm或rm
最近季⽇期:q
最近年初⽇期:syear或year或yyyy或yyy或yy或y(多个y表⽰精度)
最近世纪初⽇期:cc或scc
【返回】:⽇期
【⽰例】
SQL> select sysdate 当时⽇期,
2  round(sysdate) 最近0点⽇期,
3  round(sysdate,'day') 最近星期⽇,
4  round(sysdate,'month') 最近⽉初,
5  round(sysdate,'q') 最近季初⽇期,
6  round(sysdate,'year') 最近年初⽇期from dual;
当时⽇期最近0点⽇期最近星期⽇最近⽉初最近季初⽇期最近年初⽇期
----------- ----------- ----------- ----------- ------------ ------------
2015/4/9192015/4/102015/4/122015/4/12015/4/12015/1/1
trunc(d1[,c1])
【功能】:返回⽇期d1所在期间(参数c1)的第⼀天⽇期
【参数】:d1⽇期型,c1为字符型(参数),c1默认为j(即当前⽇期)
【参数表】:c1对应的参数表:
最近0点⽇期: 取消参数c1或j
最近的星期⽇:day或dy或d (每周顺序:⽇,⼀,⼆,三,四,五,六)
最近⽉初⽇期:month或mon或mm或rm
最近季⽇期:q
最近年初⽇期:syear或year或yyyy或yyy或yy或y(多个y表⽰精度)
最近世纪初⽇期:cc或scc
【返回】:⽇期
【⽰例】
SQL> select sysdate 当时⽇期,
2  trunc(sysdate) 今天⽇期,
3  trunc(sysdate,'day') 本周星期⽇,
4  trunc(sysdate,'month') 本⽉初,oracle四舍五入
5  trunc(sysdate,'q') 本季初⽇期,
6  trunc(sysdate,'year') 本年初⽇期from dual;
当时⽇期今天⽇期本周星期⽇本⽉初本季初⽇期本年初⽇期
----------- ----------- ----------- ----------- ----------- -----------
2015/4/9192015/4/92015/4/52015/4/12015/4/12015/1/1
【功能】:返回⽇期d1在下周,星期⼏(参数c1)的⽇期
【参数】:d1⽇期型,c1为字符型(参数),c1默认为j(即当前⽇期)
【参数表】:c1对应:星期⼀,星期⼆,星期三……星期⽇
【返回】:⽇期
SQL> select sysdate 当时⽇期,
2  next_day(sysdate,'星期⼀') 下周星期⼀,
3  next_day(sysdate,'星期⼆') 下周星期⼆,
4  next_day(sysdate,'星期三') 下周星期三,
5  next_day(sysdate,'星期四') 下周星期四,
6  next_day(sysdate,'星期五') 下周星期五,
7  next_day(sysdate,'星期六') 下周星期六,
8  next_day(sysdate,'星期⽇') 下周星期⽇from dual;
当时⽇期下周星期⼀下周星期⼆下周星期三下周星期四下周星期五下周星期六下周星期⽇
----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
2015/4/9192015/4/1312015/4/1412015/4/1512015/4/1612015/4/1012015/4/1112015/4/121 extract(c1 from d1)
【功能】:⽇期/时间d1中,参数(c1)的值
【参数】:d1⽇期型(date)/⽇期时间型(timestamp),c1为字符型(参数)
【参数表】:c1对应的参数表详见⽰例
SQL> select
2  extract(hour from timestamp '2001-2-16 2:38:40 ' ) ⼩时,
3  extract(minute from timestamp '2001-2-16 2:38:40 ' ) 分钟,
4  extract(second from timestamp '2001-2-16 2:38:40 ' ) 秒,
5  extract(DAY from timestamp '2001-2-1
6 2:38:40 ' ) ⽇,
6  extract(MONTH from timestamp '2001-2-16 2:38:40 ' ) ⽉,
7  extract(YEAR from timestamp '2001-2-16 2:38:40 ' ) 年
8from dual;
⼩时分钟秒⽇⽉年
---------- ---------- ---------- ---------- ---------- ----------
238401622001
SQL> select extract(YEAR from date '2015-04-10') from dual;
EXTRACT(YEARFROMDATE'2015-04-1
------------------------------
2015
SQL> select extract(day from sysdate),extract(month from sysdate),extract(year from sysdate) from dual; EXTRACT(DAYFROMSYSDATE) EXTRACT(MONTHFROMSYSDATE) EXTRACT(YEARFROMSYSDATE) ----------------------- ------------------------- ------------------------
942015
SQL> select sysdate 当前时间,
2  extract(DAY from sysdate ) ⽇,
3  extract(MONTH from sysdate ) ⽉,
4  extract(YEAR from sysdate ) 年
5from dual;
当前时间⽇⽉年
----------- ---------- ---------- ----------
2015/4/920942015
localtimestamp
【功能】:返回客户端会话中本地的⽇期和时间
【参数】:没有参数,没有括号
【返回】:⽇期
SQL>  select localtimestamp from dual;
LOCALTIMESTAMP
--------------------------------------------------------------------------------
10-4⽉ -1511.56.46.224832上午
current_timestamp
【功能】:以timestamp with time zone数据类型返回当前会话时区中的当前⽇期
【参数】:没有参数,没有括号
【返回】:⽇期
SQL> select current_timestamp from dual;
CURRENT_TIMESTAMP
--------------------------------------------------------------------------------
10-4⽉ -1511.56.02.361761上午 +08:00
current_date
【功能】:返回当前会话时区中的当前⽇期
【参数】:没有参数,没有括号
【返回】:⽇期
SQL> select current_date from dual;
CURRENT_DATE
-
-----------
2015/4/1011
dbtimezone
【功能】:返回时区
【参数】:没有参数,没有括号
【返回】:字符型
SQL> select dbtimezone from dual;
DBTIMEZONE
----------
+00:00
SESSIONTIMEZONE
【功能】:返回会话时区
【参数】:没有参数,没有括号
【返回】:字符型
SQL> select sessiontimezone from dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00
INTERVAL c1 set1
【功能】:变动⽇期时间数值
【参数】:c1为数字字符串或⽇期时间字符串,set1为⽇期参数
【参数表】:set1具体参照⽰例
【返回】:⽇期时间格式的数值,前⾯多个+号
以天或天更⼩单位时可⽤数值表达式借⽤,如1表⽰1天,1/24表⽰1⼩时,1/24/60表⽰1分钟
【⽰例】
SQL> select
3  trunc(sysdate)+(interval '1' second), --加1秒(1/24/60/60)
4  trunc(sysdate)+(interval '1' minute), --加1分钟(1/24/60)
5  trunc(sysdate)+(interval '1' hour), --加1⼩时(1/24)
6  trunc(sysdate)+(INTERVAL '1' DAY),  --加1天(1)
7  trunc(sysdate)+(INTERVAL '1' MONTH), --加1⽉
8  trunc(sysdate)+(INTERVAL '1' YEAR), --加1年
9  trunc(sysdate)+(interval '01:02:03' hour to second), --加指定⼩时到秒
10  trunc(sysdate)+(interval '01:02' minute to second), --加指定分钟到秒
11  trunc(sysdate)+(interval '01:02' hour to minute), --加指定⼩时到分钟
12  trunc(sysdate)+(interval '2 01:02' day to minute) --加指定天数到分钟
13from dual;
SYSDATE    TRUNC(SYSDATE)+(INTERVAL'1'SEC TRUNC(SYSDATE)+(INTERVAL'1'MIN TRUNC(SYSDATE)+(INTERVAL'1'HOU TRUNC(SYSDATE)+(INTERVAL'1'DAY TRUNC(SYSDATE)+(INTERVAL'1'MON TRUNC(SYSDATE)+(INTERVAL'1'YEA TRUNC(SYSDATE)+(INTERVAL'01:02 TRUNC(SYSDATE)+(INTERVAL'01:02 TRUNC(SYSDATE)+(INTERVAL'01:02 TRUNC(SYSDATE)+(INTERVAL'201:0
----------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
2015/4/9212015/4/90:00:012015/4/90:01:002015/4/91:00:002015/4/102015/5/9
2016/4/92015/4/91:02:03

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。