1 year=1*12 months

1 day=24 hours=24*(1*60mins)=24*60*(1*60 seconds)

1 week =7 days

注意:
黑色字体是
oracle
8i,9i都可以使用的函数,
蓝色字体是
Oracle9i新增的部分。
 
请大家在使用时,注意版本限制。
add_months
current_date

current_timestamp

datimezone
extract(datetime)
last_day

months_between
new_time

next_day

round

SYSDATE
systimestamp
TO_DATE

trunc()
1: Add_Months
语法:
Add_Months(d,n)
函数 -- n可正可负
作用: Add_Months(d,n) 返回日期 D 加上n 月的日期
Example:
A:下个月的今天
select add_months(sysdate,1) from dual --在月份上增加

B:上个月的今天

select add_months(sysdate,-1) from dual --在月份上减少

C: 上个月的最后一天

select last_day(add_months(sysdate,-1)) from dual
 
2:
Current_date
语法:
Current_date
作用:
CURRENT_DATE 返回当前Session 时区的当前日期。
Example:
A:不特别设定
oracle time_zone 是和系统Time_zone 一致。
select current_date,sysdate from dual
SQL> select current_date,sysdate from dual ;
CURRENT_DATE SYSDATE

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

20051109 160535 20051109 160534
B:
ALTER SESSION SET TIME_ZONE = '-5:0';
SQL> select current_date,sysdate from dual;
CURRENT_DATE SYSDATE

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

20051109 20051109 160644
 
3: Current_timestamp
语法:
CURRENT_TIMESTAMP(precision)
作用:
current_timestamp 返回此session 所在时区的当前日期和时间。
数据类型是 TIMESTAMP WITH TIME ZONE.
Example:
A:default timestamp
SQL> select
CURRENT_TIMESTAMP from dual;
CURRENT_TIMESTAMP

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

09-NOV-05 04.27.41.416811 PM +08:00

B: use precision
SQL> ALTER SESSION SET TIME_ZONE ='-5:0';
Session altered.
SQL> SELECT SESSIONTIMEZONE,
CURRENT_TIMESTAMP FROM DUAL

SESSIONTIMEZONE CURRENT_TIMESTAMP

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

-05:00 09-NOV-05 03.33.32.595277 AM -05:00

C: You can user others date funtion on
current_timestamp

SQL> select to_char(current_timestamp,'YYYYMMDD')
from dual;

TO_CHAR(--------20051109
 
4: Dbtimezone
作用:
Exreact 提取并且返回日期时间或时间间隔表达式中特定的时间域。
Example:
A:
SELECT EXTRACT(YEAR FROM sysdate ) FROM DUAL
SELECT EXTRACT(YEAR FROM to_date('20051110','YYYYMMDD')) FROM DUAL
EXTRACT(YEARFROMTO_DATE('20051110','YYYYMMDD'))

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

2005

B:
SQL> SELECT EXTRACT(month FROM to_date('20051110','YYYYMMDD')) FROM DUAL;
EXTRACT(MONTHFROMTO_DATE('20051110','YYYYMMDD'))

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

11
 
6: Last_day
语法:
last_day(date)
作用:
last_day 返回指定日期月的最后一天
Example:
SQL> SELECT SYSDATE,LAST_DAY(SYSDATE) "Last",LAST_DAY(SYSDATE) - SYSDATE "Days Left" FROM DUAL;
SYSDATE   Last      Days Left

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

10-NOV-05 30-NOV-05 20
 
7:Months_between
语法:
Months_between(date1,date2) ---(date1-date2)
作用:
months_between 返回两个日期间相差多少个月(Oracle default 认为31 天/month)。
Example:
A:
select months_between(sysdate-3,sysdate) "相差月数",
months_between(sysdate-3,sysdate)*31 "相差天数" from dual
相差月数   
相差天数
---------- ----------

-.09677419 -3 (11 月只有30 天)
 
8: New_time
语法:
NEW_TIME ( date , zone1 , zone2 )
作用:
New_time 返回在日期和时间在时区1所对应的时区2的日期和时间。
(使用此函数Oracle paremeters NLS_DATE_FORMAT 必须是24 小时制)
参数:
Zone1 和 Zone2 参数列表
1 AST, ADT: Atlantic Standard or Daylight Time

2 BST, BDT: Bering Standard or Daylight Time

3 CST, CDT: Central Standard or Daylight Time

4 EST, EDT: Eastern Standard or Daylight Time

5 GMT: Greenwich Mean Time

6 HST, HDT: Alaska-Hawaii Standard Time or Daylight Time.

7 MST, MDT: Mountain Standard or Daylight Time

8 NST: Newfoundland Standard Time

9 PST, PDT: Pacific Standard or Daylight Time

10 YST, YDT: Yukon Standard or Daylight Time
Example:
SQL> SELECT NEW_TIME(sysdate,'AST','PST') "New Date and Time",sysdate FROM DUAL;
New Date and Time   SYSDATE

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

2005-11-10 06:24:06 2005-11-10 10:24:06
 
9: Next_day
语法:
NEXT_DAY ( date , char )
--根据你的 NLS_DATE_LANGUAGE 不同而不同。
作用:
返回从date 开始下一个 Char所对应的星期几的日期。
Example:
A: 下一个星期一 (从sysdate 开始的下一个星期一的日期)
SELECT next_day(SYSDATE,'星期一') FROM dual
NEXT_DAY(SYSDATE,'星期一')

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

05-11-14 10:48:01
B:如果你的 NLS_DATE_LANGUAGE 是 Spanish
NEXT_DAY ('01-JAN-1997', 'LUNES') ==> 06-JAN-1997
 
10: ROUND
语法:
ROUND (date IN DATE [, format_mask VARCHAR2])
作用:
Round 返回date 所对应格式Format_mask的日期。
如果format_mask 省略则返回最近一天的日期。
11 TO_DATE
语法:
TO_DATE ( char, fmt, ’ nlsparam ’)
作用:
To_date 将char,varchar2,nchar或者nvarhcar2 的数据类型的字符串转换为日期类型。
Fmt 表示特定格式的日期类型。
Example:
SELECT TO_DATE(’January 15, 1989, 11:00 A.M.’,’Month dd, YYYY, HH:MI A.M.’,’NLS_DATE_LANGUAGE = American’)

FROM DUAL;
 
12:Trunc
语法:
TRUNC ( date,fmt)
作用:
Trunc 函数返回以特定格式(fmt) 截去某一部分的日期。
(Trunc 函数的日期显示格式同ROUND 函数请参考Chart 10.1)
Example:

本月的第一天

select trunc(sysdate,'month') from dual
本年的第一天

select trunc(sysdate,'year') from dual

本月的最后一天

select last_day(sysdate) from dual

本周的第一天

select trunc(sysdate,'day') from dual --Oracle default start week is Sunday


select trunc(sysdate,'iw') from dual ---ISO year default start week is Monday

本周的星期一

select trunc(sysdate,'day')+1 from dual --2,3,4,5,6,
select trunc(sysdate,'iw')+1 from dual --2,3,4,5,6,
4 dbtimezone
语法:
dbtimezone
作用:
dbtimezone 返回数据库时区值
Example:
SQL> SELECT DBTIMEZONE FROM DUAL;
DBTIME

------

+00:00
 
5: Extract(datetime)
作用:找出日期或间隔值的字段值
Example:
A:
SQL> select extract(month from sysdate) "This Month" from dual;

This Month

----------

11
B:

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

  

3 Years Out

-----------

2009

Oracle Date Function 讲解和事例的更多相关文章

  1. Oracle Table Function

    Oracle Table Function在Oracle9i时引入.完美的兼容了view和存储过程的长处: 应用举例: 1.Table()函数: set feedback off create or ...

  2. oracle的function和procedure返回值给shell

    本文演示两个关于如何在shell中调用oracle的function和procedure,并将返回值返回给shell. 1.首在package中创建function和procedure,脚本如下: G ...

  3. Oracle date timestamp 毫秒 - 时间函数总结(转)

    原文地址:Oracle date timestamp 毫秒 - 时间函数总结 yyyy-mm-dd hh24:mi:ss.ff  年-月-日 时:分:秒.毫秒 --上一月,上一年select add_ ...

  4. [转载]oracle游标概念讲解

    原文URL:http://www.2cto.com/database/201203/122387.html ORACLE游标概念讲解 什么是游标?  ①从表中检索出结果集,从中每次指向一条记录进行交互 ...

  5. java中从1970-1-1到当前时间之间的毫秒数转换为oracle date

    java中System.currentTimeMillis()取到的是从1970-01-01 00:00:00.000到当前时间的毫秒数,一个long类型的值. 现在oracle数据库中某表中存取的是 ...

  6. Oracle SYS_CONTEXT Function

    Version 11.1   Actions As SYS Note: USERENV is an Oracle provided namespace that describes the curre ...

  7. oracle date函数

    常用的时间格式 在oracle中有 yyyy-mm-dd hh24:mi:ss  而在Java中有些区别 为yyyy-MM-dd HH:mm:ss 这点还是经常容易模糊的.相信很多人都有过统计某些数据 ...

  8. Oracle date 和 timestamp 区别

    1.DATE数据类型 这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型.它可以存储月,年,日,世纪,时,分和秒.它典型地用来表示什么时候事情已经发生或将要发生.    ...

  9. PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone

    在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个 Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the ...

随机推荐

  1. win32多线程 (二)线程同步之临界区 (critical sections)

    所谓critical sections 意指一小块“用来处理一份被共享之资源”的程序代码.你可能必须在程序的许多地方处理这一块可共享的资源.所有这些程序代码可以被同一个critical  sectio ...

  2. Servlet请求转发 RequestDispatcher接口.RP

    在Servlet中,利用RequestDispatcher对象,可以将请求转发给另外一个Servlet或JSP页面,甚至是HTML页面,来处理对请求的响应. 一,RequestDispatcher接口 ...

  3. css总结20:TCP通信协议WebSocket

    HTML5 WebSocket 1 介绍: WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. 在WebSocket API中,浏览器和服务器只需要做一个握手的动 ...

  4. 自定义UINavigationBar的背景【转】

    from:http://cocoa.venj.me/blog/custom-navbar-background/ 为了让我们的应用程序更加美观,我们往往希望对iPhone自带的控件进行一点自定义.比如 ...

  5. Eclipse下Android的NDK开发环境配置

    编辑2016年7月26日——增加了下载网址,修改了一些错误. 摸索了一周,走了很多弯路,磕磕绊绊,总算是弄好了NDK的开发环境,在这里总结一下吧. 一.Android NDK开发环境 首先下载安装JR ...

  6. 基于HTML5 Ajax文件上传进度条如何实现(jquery版本)

    <!DOCTYPE html> <html> <head> <title>html5_2.html</title> <meta htt ...

  7. poj2002 Squares(hash+折半枚举)

    Description A square is a 4-sided polygon whose sides have equal length and adjacent sides form 90-d ...

  8. 求数列中第K大的数

    原创 利用到快速排序的思想,快速排序思想:https://www.cnblogs.com/chiweiming/p/9188984.html array代表存放数列的数组,K代表第K大的数,mid代表 ...

  9. RequireJS 主入口加载模块经常会加载失败的问题

    在接入requirejs时,在main入口遇到了这样的问题,使用jquery,刷新10次页面会有3-4次加载失败,找不到$符号等等 require.config({ 'baseUrl': './mod ...

  10. C# ADO.NET+反射读取数据库并转换为List

    public List<T> QueryByADO<T>(string connStr, string sql) where T : class, new() { using ...