oracle学习之日期函数

Oracle 用到的日期函是:

 

     

          

ADD_MONTH

在日期date上增加count个月

GREATEST(date1,date2,. . .)

从日期列表中选出最晚的日期

LAST_DAY( date )

返回日期date 所在月的最后一天

LEAST( date1, date2, . . .)

从日期列表中选出最早的日期

MONTHS_BETWEEN(date2,date1)

给出 Date2 - date1 的月数(可以是小数)

NEXT_DAY( date,day)

给出日期date之后下一天的日期,这里的day为星期,如: MONDAY,Tuesday等。

NEW_TIME(date,this,other)

给出在this 时区=Other时区的日期和时间

ROUND(date,format)

未指定format时,如果日期中的时间在中午之前,则将日期中的时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。

TRUNC(date,format)

未指定format时,将日期截为12 A.M.( 午夜,一天的开始).

ADD_MONTHS( <d>,<I> )

 

增加月份和减去月份,如:

 

SQL> select to_char( add_months(to_date('199712','yyyymm'), 1),'yyyymm') add_month

  2  from dual;

 

ADD_MO

------

199801

 

 

SQL> select to_char(add_months(to_date('199712','yyyymm'), -1 ),'yyyymm') add_mo

  2  from dual;

ADD_MO

------

199711

 

 

LAST_DAY( date ) 

 

返回日期date 所在月的最后一天,如:

 

SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd')

  2  from dual;

 

TO_CHAR(SY TO_CHAR((S

---------- ----------

2001.05.18 2001.05.19

 

MONTHS_BETWEEN(date2,date1)

给出 Date2 - date1 的月数(可以是小数)

 

SQL> select months_between('19-12-1999','19-3-2000') mon_betw from dual;

 

  MON_BETW

----------

        -3

 

 

SQL> select months_between(to_date('2000.05.20','yyyy.mm.dd'),

  2  to_date('2005.05.20','yyyy.mm.dd') ) mon_bet from dual;

 

   MON_BET

----------

-60

 

NEW_TIME(date,this,other)

 

给出在this 时区=Other时区的日期和时间

Thisother 是时区,它们可以是下面的值:

 

时区缩写

代表的时区

AST/ADT

大西洋标准/日期时间

BST/BDT

白令海标准/日期时间

CST/CDT

中部标准/日期时间

GMT

格林威治时间

HST/HDT

阿拉斯加-夏威夷标准/日期时间

 

 

MST/MDT

山区标准/日期时间

NST

新大陆标准时间

PST/PDT

太平洋标准/日期时间

YST/YDT

Yukon标准/日期时间

 

 

SQL> select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,

  2   to_char(new_time(sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles

  3    from dual;

 

BJ_TIME             LOS_ANGLES

------------------- -------------------

2001.05.19 06:25:25 2001.05.19 13:25:25

 

NEXT_DAY( date,day)

给出日期date和星期x之后计算下一星期x的日期,这里的day为星期,如: MONDAY,Tuesday等。但在中文环境下,要写成星期x这样的格式,如:

 

例:比如今天是518日星期五,计算下一个星期五是几号:

SQL>  select next_day('18-5-2001','星期五') nxt_day from dual;

 

NXT_DAY

----------

25-5 -01

 

 

SYSDATE

用来得到系统的当前日期,如:

 

SQL> select to_char(sysdate,'dd-mon-yyyy day') from dual;

 

TO_CHAR(SYSDATE,'DD

-------------------

18-5 -2001 星期五

 

 

TRUNC(<date>,[,<fmt>] )

按照 给出的 fmt 的要求将日期截断。如果 fmt=mi 则表示截断掉秒保留至分。如:

 

SQL> select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,

  2  to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;

HH                  HHMM

------------------- -------------------

2001.05.18 22:00:00 2001.05.18 22:27:00

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值