设为首页 收藏本站
查看: 1579|回复: 0

[经验分享] Oracle日期函数归总

[复制链接]

尚未签到

发表于 2016-7-18 06:23:03 | 显示全部楼层 |阅读模式
  1.add_months()用于从一个日期值增加或减少一些月份
  


  
  


  语法:date_value:=add_months(date_value,number_of_months)
  


  
  SQL> select add_months(sysdate,12) "Next Year" from dual;
  Next Year
  ----------
  13-11月-04
  SQL> select add_months(sysdate,112) "Last Year" from dual;
  Last Year
  ----------
  13-3月 -13
  
  2.current_date()返回当前会话时区中的当前日期
  语法:date_value:=current_date
  
  SQL> column sessiontimezone for a15
  SQL> select sessiontimezone,current_date from dual;
  SESSIONTIMEZONE CURRENT_DA
  --------------- ----------
  +08:00 13-11月-03
  SQL> alter session set time_zone='-11:00' 2 /
  会话已更改。
  SQL> select sessiontimezone,current_timestamp from dual;
  SESSIONTIMEZONE CURRENT_TIMESTAMP
  --------------- ------------------------------------
  -11:00 12-11月-03 04.59.13.668000 下午 -11:00
  3.dbtimezone()返回时区
  
 


  
  
  语法:varchar_value:=dbtimezone
  SQL> select dbtimezone from dual;
  DBTIME
  ------
  -07:00
  <!--EndFragment-->
  4.extract()找出日期或间隔值的字段值
    
  语法:date_value:=extract(date_field from [datetime_value|interval_value])
  
  
  SQL> select extract(month from sysdate) "This Month" from dual;
  
  This Month
  
  ----------

  11

  SQL> select extract(year from add_months(sysdate,36)) "3 Years Out" from dual;

  3 Years Out

  -----------

    2006


  
  
  5.last_day()返回包含了日期参数的月份的最后一天的日期
  
  语法:date_value:=last_day(date_value)
  
  SQL> select last_day(date'2000-02-01') "Leap Yr?" from dual;
    Leap Yr?
    ----------
    29-2月 -00
    SQL> select last_day(sysdate) "Last day of this month" from dual;
    Last day o
    ----------
    30-11-03
  
  6.localtimestamp()返回会话中的日期和时间 
 
语法:timestamp_value:=localtimestamp
 

SQL> column localtimestamp format a28

  SQL> select localtimestamp from dual;

  LOCALTIMESTAMP

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

  13-11-03 12.09.15.433000 下午

  SQL> select localtimestamp,current_timestamp from dual;

  LOCALTIMESTAMP CURRENT_TIMESTAMP

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

  13-11-03 12.09.31.006000 13-11-03 12.09.31.006000 下午 +08:下午 00

  SQL> alter session set time_zone='-11:00';

  会话已更改。

  SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SS AM') "SYSDATE" from dual;

  LOCALTIMESTAMP SYSDATE

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

  12-11-03 05.11.31.259000 13-11-2003 12:11:31 下午 下午

 

 

 

7.months_between()判断两个日期之间的月份数量

 

语法:number_value:=months_between(date_value,date_value)

  
 

SQL> select months_between(sysdate,date'1971-05-18') from dual;

  MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18')

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

  389.855143

  SQL> select months_between(sysdate,date'2001-01-01') from dual;

  MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01')

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

  34.4035409



  
  
  
  8.next_day()给定一个日期值,返回由第二个参数指出的日子第一次出现在的日期值(应返回相应日子的名称字符串)
  说明:
    单行日期函数
    单行日期函数操作data数据类型,绝大多数都有data数据类型的参数,绝大多数返回的也是data数据类型的值。
    add_months(,)
    返回日期d加上i个月后的结果。i可以使任意整数。如果i是一个小数,那么数据库将隐式的他转换成整数,将会截去小数点后面的部分。
    last_day()
    函数返回包含日期d的月份的最后一天
    months_between(,)
    返回d1d2之间月的数目,如果d1d2的日的日期都相同,或者都使该月的最后一天,那么将返回一个整数,否则会返回的结果将包含一个分数。
    new_time(,,)
    d1是一个日期数据类型,当时区tz1中的日期和时间是d时,返回时区tz2中的日期和时间。tz1tz2时字符串。
    next_day(,)
    返回日期d后由dow给出的条件的第一天,dow使用当前会话中给出的语言指定了一周中的某一天,返回的时间分量与d的时间分量相同。
  select next_day(''01-jan-2000'',''monday'') "1st monday",next_day(''01-nov-2004'',''tuesday'')+7 "2nd tuesday") from dual;1st monday 2nd tuesday03-jan-2000 09-nov-2004
    round([,])
    将日期d按照fmt指定的格式舍入,fmt为字符串。
    syadate
    函数没有参数,返回当前日期和时间。
    trunc([,])
    返回由fmt指定的单位的日期d.
    单行转换函数
    单行转换函数用于操作多数据类型,在数据类型之间进行转换。
    chartorwid()
    使一个字符串,函数将c转换为rwid数据类型。
    select test_id from test_case where rowid=chartorwid(''aaaa0saacaaaaliaaa'')
    convert(,[,])
    c尾字符串,dsetsset是两个字符集,函数将字符串csset字符集转换为dset字符集,sset的缺省设置为数据库的字符集。
    hextoraw()
    x16进制的字符串,函数将16进制的x转换为raw数据类型。
    rawtohex()
    xraw数据类型字符串,函数将raw数据类转换为16进制的数据类型。
    rowidtochar()
    函数将rowid数据类型转换为char数据类型。
    to_char([[,)
    x是一个datanumber数据类型,函数将x转换成fmt指定格式的char数据类型,如果x为日期nlsparm=nls_date_language 控制返回的月份和日份所使用的语言。如果x为数字nlsparm=nls_numeric_characters 用来指定小数位和千分位的分隔符,以及货币符号。
    nls_numeric_characters ="dg", nls_currency="string"
    to_date([,[,)
    c表示字符串,fmt表示一种特殊格式的字符串。返回按照fmt格式显示的c,nlsparm表示使用的语言。函数将字符串c转换成date数据类型。
    to_multi_byte()
    c表示一个字符串,函数将c的担子截字符转换成多字节字符。
    to_number([,[,)
    c表示字符串,fmt表示一个特殊格式的字符串,函数返回值按照fmt指定的格式显示。nlsparm表示语言,函数将返回c代表的数字。
    to_single_byte()
    将字符串c中得多字节字符转化成等价的单字节字符。该函数仅当数据库字符集同时包含单字节和多字节字符时才使用。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-245442-1-1.html 上篇帖子: oracle statspack实例(二) 下篇帖子: oracle 客户端连接
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表