oracle 常用函数之 日期函数

---------------------------------------------日期/时间函数-----------------------------------------------
--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 分钟数(0~59)
SELECT TO_CHAR(SYSDATE, ‘MI‘) FROM DUAL;
提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。

SS 秒数(0~59)
SELECT TO_CHAR(SYSDATE, ‘SS‘) FROM DUAL;

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

时间: 2024-10-06 02:35:50

oracle 常用函数之 日期函数的相关文章

ORACLE PL/SQL 字符串函数、数学函数、日期函数

ORACLE PL/SQL 字符串函数.数学函数.日期函数 --[字符串函数] --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符串从前面取三个(0开始) select Name,substr(Name,0,3) from t1; --字符串从后面取三个 select Name,substr(Name,-3

SQL Server系统函数:日期函数

原文:SQL Server系统函数:日期函数 1.返回当前日期和时间 select GETDATE() '当前日期-精确到33毫秒' select GETUTCDATE() 'UTC日期和时间-精确到33毫秒' select SYSDATETIME() '当前日期和时间-精确到100纳秒(高精度)' select SYSUTCDATETIME() 'UTC-精确到100纳秒(高精度)' select SYSDATETIMEOFFSET()'当前日期与UTC之间的差值(时分)' 2.转换偏移,从一

oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel

oracle常用数据库内置函数

函数 返回值 样例 显示 CEIL(n) 大于或等于数值n的最小整数 SELECT CEIL(10.6) FROM TABLE_NAME; 11 FLOOR(n) 小于等于数值n的最大整数 SELECT FLOOR (10.6) FROM TABLE_NAME; 10 MOD(m,n) m除以n的余数,若n=0,则返回m SELECT MOD (7,5) FROM TABLE_NAME l; 2 POWER(m,n) m的n次方 SELECT POWER (3,2) FROM TABLE_NAM

ORACLE常用数值函数、转换函数、字符串函数

本文并不准备介绍全部的oracle函数,当前情势下,俺也还没这个时间,需要学习的东西太多了,要把多数时间花在学习经常能用上的技术方面:),所以如果是准备深入了解所有oracle函数的朋友,还是去关注:Oracle SQL Reference官方文档更靠谱一些. 本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数.分二类介绍,分别是: 著名函数篇 -经常用到的函数 非著名函数篇-即虽然很少用到,但某些情况下却很实用 注:N表示数字型,C表示字符型,D表示日期型,

oracle数据库内置函数之数值函数、字符函数、日期函数、转换函数及其在查询语句中的运用

数值函数: 1.四舍五入函数round() from dual:一行一列组成 select round(23.4) from dual;--默认不写m表示m为0 select round(23.45,1) from dual;--1表示保留小数点后一位,那么是小数点的第二位四舍五入 select round(23.45,-1) from dual;---1表示小数点前一位四舍五入取整,前一位是3四舍五入为20 2.取整函数: select ceil(23.45),floor(23.45) fro

常用函数、文本处理函数、日期函数

1.CONCAT(str1,str2,...) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL,则返回值为 NULL. 2.CONCAT_WS(separator,str1,str2,...) 第一个参数是其它参数的分隔符.分隔符的位置放在要连接的两个字符串之间.分隔符可以是一个字符串,也可以是其它参数. 3.常用的文本处理函数 函数 说明 示例 示例结果 LEFT(str,len) 返回串左边的len个字符  SELECT LEFT('abcdef',2);  ab LENGTH(

Oracle数据库数值、日期函数的学习

一.数值函数的学习 1)number(p,s).number(p).number(*,s),p的值为1-38之间. 2)数值类型的兼容性 --:numeric(p,s) 相当于number(p,s) --:decimal(p,s)或dec(p,s) 相当于number(p,s) --:integer或int(不能指定位数)相当于number(38) --:smallint相当于number(38) --:float相当于number --:double precision相当于number --

MYSQL常用的时间日期函数

#时间日期函数 #获取当前日期XXXX-XX-XXSELECT CURRENT_DATE(); SELECT CURDATE();#效果与上一条相同 #获取当前日期与时间XXXX-XX-XX XX:XX:XXSELECT NOW(); SELECT LOGTIME();#效果与上一条相同SELECT SYSDATE();#效果与上一条相同 #分别获取某一部分 SELECT YEAR(NOW());#获取年份 SELECT MONTH(NOW());#获取月份SELECT DAY(NOW());获