---------------------------------------------日期/时间函数-----------------------------------------------
--1:  SYSDATE
用来得到系统的当前日期

SELECT SYSDATE FROM DUAL;

--2:  ADD_MONTHS
增加或减去月份

SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20080818','YYYYMMDD'),2), 'YYYY-MM-DD') FROM DUAL;

SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'YYYY-MM-DD') FROM DUAL

--3:   LAST_DAY
返回日期的最后一天

SELECT LAST_DAY(SYSDATE) FROM DUAL;

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

--4:   MONTHS_BETWEEN(date2,date1)
给出date2-date1的月份

--参数的格式需要注意

SELECT MONTHS_BETWEEN(TO_DATE('2011-05-03', 'YYYY-MM-DD'), TO_DATE('2011-01-23', 'YYYY-MM-DD')) FROM DUAL;

SELECT MONTHS_BETWEEN('19-12月-1999','19-3月-1999') mon_between FROM DUAL;

--SELECT MONTHS_BETWEEN('2011-1月-23', '2011-9月-1') FROM DUAL;  文字与格式字符串不匹配

--5:    NEW_TIME(date,'this','that')
给出在this时区=other时区的日期和时间

SELECT TO_CHAR(SYSDATE, 'YYYY.MM.DD HH24:MI:SS') BeiJing_Time,
       TO_CHAR(NEW_TIME(SYSDATE, 'PDT', 'GMT'), 'YYYY.MM.DD HH24:MI:SS') LOS_ANGELS FROM DUAL;
       
       
 简写                  时区                 
 AST OR ADT          大西洋标准时间         
 HST OR HDT          阿拉斯加—夏威夷时间
 BST OR BDT          英国夏令时
 MST OR MDT          美国山区时间
 CST OR CDT          美国中央时区
 NST                 新大陆标准时间
 EST OR EDT          美国东部时间
 PST OR PDT          太平洋标准时间
 GMT                 格伦威治标准时间
 YST OR YDT          Yukon标准时间
 
 --6:    NEXT_DAY 
 返回与制定日期在同一个星期或之后一个星期内的,你所要求的星期天数的确切日期。
 
 
 --星期日 = 1  星期一 = 2  星期二 = 3  星期三 = 4  星期四 = 5  星期五 = 6  星期六 = 7

SELECT NEXT_DAY(SYSDATE, 2) FROM DUAL;
 
 
--7:    CURRENT_DATE
 当前会话时区中的当前日期

SELECT CURRENT_DATE FROM DUAL;

--8:    CURRENT_TIMESTAMP
以timestamp with time zone数据类型返回当前会话时区中的当前日期

SELECT CURRENT_TIMESTAMP FROM DUAL;

--9:   DBTIMEZONE() 
返回时区

SELECT DBTIMEZONE FROM DUAL;

--10:   SESSIONTIMEZONE
返回回话时区  其中DBTIMEZONE是数据库的,session是针对当前会话的,因为时区在会话级可以改变

SELECT SESSIONTIMEZONE FROM DUAL;

ALTER SESSION SET TIME_ZONE = '8:00';

SELECT SESSIONTIMEZONE FROM DUAL;

--11:EXTRACT 
找出日期或间隔值的字段值

SELECT EXTRACT(MONTH FROM SYSDATE) "MONTH" FROM DUAL;

SELECT EXTRACT(DAY  FROM SYSDATE)  AS "DAY" FROM DUAL;

SELECT EXTRACT(YEAR FROM SYSDATE) AS "YEAR" FROM DUAL;

--12:LOCALTIMESTAMP 
返回会话中的日期和时间

SELECT LOCALTIMESTAMP FROM DUAL;

--13:  TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:
TRUNC(date[,fmt])
其中:
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:
TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am')
='24-Nov-1999 12:00:00 am'
TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'
SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL; --返回当年第一天.
SELECT TRUNC(SYSDATE,'MM') FROM DUAL; --返回当月第一天.
SELECT TRUNC(SYSDATE,'D') FROM DUAL; --返回当前星期的第一天.
SELECT TRUNC(SYSDATE,'DD') FROM DUAL;--返回当前年月日

----  上月最后一天

SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)), 'YYYY/MM/DD') FROM DUAL;

----: 上各月的今天
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'YYYY-MM-DD') FROM DUAL;

---- 上个月第一天

SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+1,-2),'YYYY-MM-DD') FirstDay FROM DUAL;

---  按照每周进行统计

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

---  按照每月进行统计

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

----  按照每季度进行统计

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

---  按照每年进行统计

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

---  要找到某月中所有周五的具体日期

SELECT TO_CHAR(T.D, 'YY-MM-DD')
FROM
(
    SELECT TRUNC(SYSDATE, 'MM') + ROWNUM -1 AS D
    FROM DBA_OBJECTS
    WHERE ROWNUM < 32
) T
WHERE TO_CHAR(T.D, 'MM') = TO_CHAR(SYSDATE, 'MM')
    AND TRIM(TO_CHAR(T.D, 'DAY')) = '星期五'

下面的内容应该属于格式化函数,但是为了对日期函数做详细叙述,就把TO_CHAR的内容放到这里了

Y或YY或YYY 年的最后一位,两位或三位  
SELECT TO_CHAR(SYSDATE, 'YYY') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'YY') FROM DUAL;

SYEAR或YEAR SYEAR使公元前的年份前加一负号
SELECT TO_CHAR(SYSDATE, 'SYEAR') FROM DUAL;    --TWENTY ELEVEN

Q 季度,1~3月为第一季度 
SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL;        -- 2表示第二季度

MM 月份数 
SELECT  TO_CHAR(SYSDATE, 'MM') FROM DUAL;      --04表示4月

RM 月份的罗马表示 
SELECT TO_CHAR(SYSDATE, 'RM') FROM DUAL;       --IV表示4月

Month 用9个字符长度表示的月份名 
SELECT TO_CHAR(SYSDATE, 'MONTH') FROM DUAL;    -- 4月

WW 当年第几周 
SELECT TO_CHAR(SYSDATE, 'WW') FROM DUAL;       -- 24表示2002年6月13日为第24周

W 本月第几周 
SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL;        -- 2011年04月26日为第4周

DDD 当年第几天. 1月1日为001,2月1日为032 
SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;

DD 当月第几天 
SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL;

D 周内第几天 
SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;

DY 周内第几天缩写 
SELECT TO_CHAR(SYSDATE, 'DY') FROM DUAL;

HH或HH12 12进制小时数
SELECT TO_CHAR(SYSDATE, 'HH') FROM DUAL;

HH24 24小时制 
SELECT TO_CHAR(SYSDATE, 'HH24') FROM DUAL;

MI 分钟数(059
SELECT TO_CHAR(SYSDATE, 'MI') FROM DUAL;
提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。

SS 秒数(059
SELECT TO_CHAR(SYSDATE, 'SS') FROM DUAL;
 
--------------------------------------------------------------------------------------

作者:潇湘隐者
出处:http://www.cnblogs.com/kerrycode/

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.

ORACLE 常用函数——日期/时间函数(感谢潇湘隐者)相关推荐

  1. Oracle中的日期时间函数

    Oracle中日期时间的处理有时候是非常让人头疼的一件事.下面呢,我将我总结的一些日期时间函数的用法写下来,以作化输出为输入之用. 先来了解些基本概念: 日期时间函数:用于处理DATE和TIMESTA ...

  2. VB.NET函数——日期时间函数

    <一> 获取/设置目前日期时间函数 (1)Now ():返回系统目前的日期和时间.如:2007-3-29 早上10:38:22 (2)Today ():返回或设置系统目前的日期. (3)T ...

  3. Oracle PL/SQL——日期时间函数的运用

    建表.数据插入 CREATE TABLE TEST.STU2(SNO VARCHAR2(10) PRIMARY KEY,SNAME VARCHAR2(10),SGENTLE VARCHAR2(2),S ...

  4. python的gmtime函数_学不会的Python函数——日期时间函数

    Python有很多处理日期和时间的方法,其中转换日期格式时最为常见的.Python提供了time和calendar模块用于格式化日期和时间. 1.时间函数 在Python中,通常有如下几种方法表示时间 ...

  5. sybase datediff mysql_Sybase中的日期时间函数_龙的天空

    今天做php项目的时候碰到一个问题,经过上网查找,找到了解决方法,特意记下来,以备以后查找.问题是保存在sybase数据库中的时间格式是类似"2007-06-18 14:12:30" ...

  6. oracle 日期 extract,ORACLE——EXTRACT() 截取日期时间的函数使用

    1.截取日期的 年: --使用方法 EXTRACT(YEAR FROM DATE) SQL> SELECT EXTRACT( YEAR FROM SYSDATE ) FROM DUAL; --结 ...

  7. [转]ORACLE日期时间函数大全

    本文转自:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间:2007 ...

  8. Oracle 日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)             Year:               yy two digits ...

  9. ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digi

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)             Year:               yy two digits ...

最新文章

  1. 大数据学习笔记二:Ubuntu/Debian 下安装大数据框架Hadoop
  2. 谷歌又买算法送手机了,最新方法让背景虚化细节到头发丝,真有单反的感觉了...
  3. 5年博龄只有十几篇文章,惭愧呀
  4. 全球 Top 10 高材生赴神策数据的交流访问之旅
  5. 12月第2周.NET总量TOP10:中土意涨幅均环比增大
  6. [WinError 127] 找不到指定的程序
  7. linux多进程优先级,Linux多线程之优先级
  8. USB和USB2.0万能驱动
  9. mysql私房菜_老男孩MySQL私房菜深入浅出精品视频第7章备份与恢复基础实践视频课程...
  10. 如何通过一个SDK轻松搞定人脸识别,拯救初入职场的程序猿
  11. 《算法图解》之选择排序
  12. 判断点在多边形内部的方法(Java版)
  13. 用ASP.NET MVC自己管理自己的View:ASP.NET MVC File Management 【转】
  14. java可以用var定义吗_浅析java 10中的var关键字用法
  15. javacv使用详解
  16. 创建oracle本地数据库步骤详解
  17. Three.js - 加载 .OBJ 格式模型(十六)
  18. 微信公众号微信网页开发网页授权/回调自定义参数问题处理方法。
  19. 【C#】身份证识别(二):提取目标区域图像
  20. 利用棋盘格进行相机标定

热门文章

  1. python获取图片名称_python提取图像的名字*.jpg到txt文本的方法
  2. 去掉fgets拷贝的回车符
  3. 2015届华为校园招聘机试题 C语言实现
  4. 安装 SuMa (Surfel-based Mapping using 3D Laser Range Data)遇到的问题
  5. Java自学指南四、书籍
  6. java怎么强制回收某个对象_4、如何强制垃圾回收一个对象?(java)
  7. 大数据产品开发流程规范_大数据开发流程规范化(最新数据流图及相关数据技术分析)...
  8. 用Delphi自制英语复读机
  9. 任何产品需求,挖到最后都是人性
  10. 知乎关注度人数最多的问题排行榜 TOP10