ORACLE日期函数

 

以时间2007-11-02   134525为例

日期字段

格式

英文

解释

显示值

 

Year

 

 

yy

two digits

两位年

07

yyy

three digits

三位年

007

yyyy

four digits

四位年

2007

Month 

 

mm

number

两位月

11

mon

abbreviated

字符集表示

11月(nov

month

spelled out

字符集表示

11月(november

       

 Day

 

dd

number

当月第几天

02

ddd

number

当年第几天

02

dy

abbreviated

当周第几天简写

星期五(fri

day

spelled out

当周第几天全写

星期五(friday

 Hour

 

hh

two digits

12小时制

01

hh24

two digits

24小时制

13

Minute

mi

two digits

60进制

45

Second

ss

two digits

60进制

25

   

 

 Others    

 

 

Q

digit

季度

4

WW

digit

当年第几周

44

W

digit

当月第几周

1

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual;

年:

          YY    :两位年   16

    YYY   :三位年   016

        YYYY  :四位年   2016

   季度

       Q  :返回季度

   月份

      MM : 

  MON :

  MONTH:

   周

      WW :

   W  :

   天

      DD :

  DDD :

  DY :

  DAY :

  小时

  HH: 

  HH24 :

  分

  MI :

  秒

  SS:

1.获取当前系统日期

--返回当前系统日期
SELECT SYSDATE FROM DUAL;

2.返回系统日期的年份 

  •  两位年      
SELECT TO_CHAR(SYSDATE,'YY') FROM DUAL;
  •  三位年
select TO_CHAR(SYSDATE,'YYY')FROM DUAL;
  •  四位年
SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;

3.返回季度

 SELECT TO_CHAR(SYSDATE,'Q') FROM DUAL;

4.返回日期的月份

     月份数字  :

SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;

   月份英文缩写:

 SELECT TO_CHAR(SYSDATE,'MON') FROM DUAL;

   月份全英文:

SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL;

5.返回周

当年第几周

 SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;

当月第几周

 SELECT TO_CHAR(SYSDATE,'W') FROM DUAL;

6.返回日期的天数

 当月第几天

 SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;

当年第几天

   SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;  

本周星期几缩写

SELECT TO_CHAR(SYSDATE,'DY') FROM DUAL;

本周星期几全称  

SELECT TO_CHAR(SYSDATE,'DAY') FROM DUAL;

7.返回小时

 十二:  SELECT TO_CHAR(SYSDATE,'HH') FROM DUAL;
 二十四:SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;

返回时间的分

 SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;

8.返回秒

SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;

/********************************华丽的分割线************************************/

1.获取当前月份的第一天

SELECT TRUNC(SYSDATE,'MONTH') FROM DUAL;

2.获取当前月份的最后一天

SELECT TRUNC(LAST_DAY(SYSDATE)) FROM DUAL;

3.获取当前年份的第一天

SELECT TRUNC(SYSDATE,'YEAR') FROM DUAL;

4.获取当前年份的最后一天

SELECT TRUNC(LAST_DAY(SYSDATE)) FROM DUAL;

5.获取当前月份的天数

SELECT CAST(TO_CHAR(LAST_DAY(SYSDATE),'DD') AS INT) FROM DUAL;

6.获取当前月份剩下的天数

SELECT SYSDATE , LAST_DAY(SYSDATE) ,LAST_DAY(SYSDATE)-SYSDATE FROM DUAL;

7.获取两个日期之间的天数

SELECT ROUND(SYSDATE - TRUNC(SYSDATE,'YEAR')) FROM DUAL;

8.获取直到目前为止今天过去的秒数

SELECT (SYSDATE - TRUNC (SYSDATE)) * 24 * 60 * 60 num_of_sec_since_morning
  FROM DUAL;

9.获取今天剩下的秒数

SELECT (TRUNC (SYSDATE+1) - SYSDATE) * 24 * 60 * 60 num_of_sec_left
  FROM DUAL;

10.获取两个日期的月份差 

select months_between(trunc(to_date('2010-03-02','yyyy-mm-dd'),'mm') , trunc(to_date('2010-02-10','yyyy-mm-dd'),'mm')) from dual;

11.获取两个日期的天数差

select to_date('2010-03-02','yyyy-mm-dd')-to_date('2010-02-10','yyyy-mm-dd') from dual;

12.获取两个日期的年份差

select months_between(to_date('2010-03-01','yyyy-mm-dd') , to_date('2007-03-01','yyyy-mm-dd'))/12 from dual;

 

/********************************************/

1.生成随机数

SELECT ROUND (DBMS_RANDOM.VALUE () * 100) + 1 AS random_num FROM DUAL;

 

 

posted @ 2016-07-23 16:10  Blue眼泪2016  阅读(484)  评论(0编辑  收藏  举报