- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【原】Oracle开发专题之:时间运算
目录 1.Oracle的日期函数2.日期加减3.月份加减4.年份加减5.求每月的最后一天6.求每月的第一天7.求下一个星期几入门知识:Oracle中的日期时间存储:oracle数据库中存放时间格式的数据,是以oracle特定的格式存贮的,占7个字节,与查询时显示的时间格式无关。不存贮秒以下的时间单位。Oracle中的日期时间显示:通常,客户端与数据库建立起连接后,oracle就会给一个缺省的时间格式数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。Oracle中的日期时间插入:向表中插入数据时,如果不使用转换函数,则时间字段的格式必须遵从会话环境的时间格式,否则不能插入。Oracle中的日期时间格式修改:a.SQL alter session set nls_date_format yyyy-mm-dd hh24:mi:ss;b.册表\hkey_local_machine\software\oracle\home0主键中增加一个字串 8i版本 ,字串名为nls_date_format,字串的值为你希望定义的时间格式前者只对当前会话有效,也即是一旦你关闭了SQL*PLUS窗口或重新打开一个SQL*PLUS窗口,日期时间格式依然采用本地字符集对应的日期时间格式。后者对所有客户端应用有效。当两者同时应用时,以alter session的修改为准。一、Oracle的日期函数:Oracle从8i开始就提供了大量的日期函数,这些日期函数包括对日期进行加减、转换、截取等功能。下面是Oracle提供的日期函数一览表?
Function Use ADD_MONTHS Adds months to a date LAST_DAY Computes the last day of the month MONTHS_BETWEEN Determines the number of months between two dates NEW_TIME Translates a time to a new time zone NEXT_DAY Returns the date of the next specified weekday ROUND Rounds a date/time value to a specified element SYSDATE Returns the current date and time TO_CHAR Converts dates to strings TO_DATE Converts strings and numbers to dates TRUNC Truncates a date/time value to a specific element 二、日期加减:在Oralce中,对日期进行加减操作的默认单位是天,也就是说如果我们向当前日期加1的话是加上一天,而不是一秒或一小时。那么对一天中的一段时间进行加减要怎么做呢?很简单!只需将它们转化为以天为单位即可。【1】为当前时间加上30分钟:
SQL ?select?to_char sysdate,?yyyy-mm-dd?hh:mi:ss ?now_date,??2 to_char sysdate+ 30/24/60 ,?yyyy-mm-dd?hh:mi:ss ?new_date??3????from?dual;NOW_DATE NEW_DATE
我们看到了在绿色高亮处使用30/24/60将分钟转换成天。另外一个要注意的地方是:SQL*PLUS环境下默认的日期格式:NLS_DATE_FORMAT是DD-MM-YYYY,也即是不包含时、分、秒,所以我们这里必须采用to_char的方式指定输入的日期格式。除此之外也可以通过在SQL*PLUS中执行下列语句修改默认的日期输出格式,这样的话就不需要通过to_char来转换了,直接输出就行。
alter?session?set?nls_date_format yyyy-mm-dd?hh24:mi:ss;
【2】为当前时间减去30分钟:
SQL ?select?to_char sysdate+ -30/24/60 ,yyyy-mm-dd?hh:mi:ss ?new_date?from?dual;NEW_DATE
只需要加上一个负数即可以了。三、月份加减:月份的加减和日期加减相比要难了很多,因为每个月份的天数并不是固定的,可 能是31,30,29,28。如果采用上面的方法将月份转换成实际天数将不可避免地出现多个判断,幸亏Oracle为我们提
文档评论(0)