常用日期

SELECT SYSDATE FROM DUAL;--返回系统时间,2019-09-14 10:35:21
SELECT SYSTIMESTAMP FROM DUAL;--14-9月 -19 10.27.31.496000 上午 +08:00--时区的概念
--返回会话的时区中的系统时间(可以自己设置会话的时区,区别于数据库时区)2019-09-14 10:35:21
SELECT CURRENT_DATE FROM DUAL;
SELECT CURRENT_TIMESTAMP FROM DUAL;--14-9月 -19 12.02.50.601000 下午 +08:00--当时区修改之后(美国时区),上面两个查询的日期就不是当前系统显示的日期时间
ALTER SESSION SET TIME_ZONE='-08:00';
SELECT SESSIONTIMEZONE FROM DUAL;---08:00
SELECT LOCALTIMESTAMP FROM DUAL;SELECT ADD_MONTHS(SYSDATE,12) FROM DUAL;--加1年,2020-09-14 15:16:15
SELECT SYSDATE+1 FROM DUAL;--天数的增减,2019-09-15 10:38:13
SELECT ADD_MONTHS(SYSDATE,-5) FROM DUAL;--月份的增减,2019-04-14 10:40:59
--如果指定日期是月份最后一天,增减一个月之后的月份也是最后一天,2019-10-31
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2019-09-30','YYYY-MM-DD'),1),'YYYY-MM-DD') FROM DUAL;

格式化(日期和字符串的转化)

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;--2019-09-14 09:45:35
SELECT TO_CHAR(DATE '2019-09-14'+1,'YYYYMMDD') FROM DUAL;--20190915
SELECT TO_CHAR(TO_DATE('2019-09-10','YYYY-MM-DD'),'DAY') FROM DUAL;--星期二
SELECT TO_CHAR(SYSDATE-7,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;--往前一周,2019-09-07 15:19:39
SELECT TO_CHAR(SYSDATE+1/24,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;--加一小时,2019-09-14 16:19:19
SELECT TO_CHAR(SYSDATE+1/24/60,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;--加一分钟,2019-09-14 15:21:40SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;--2019,年份
SELECT TO_CHAR(SYSDATE,'Q') FROM DUAL;--3,返回第几个季度
SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;--09,月份
SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL;--9月
SELECT TO_CHAR(SYSDATE,'W') FROM DUAL;--2,返回本月第几周
SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;--37,返回本年第几周
SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;--14,返回本月第几天
SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;--257,返回本年第几天
SELECT TO_CHAR(SYSDATE,'DY') FROM DUAL;--星期六
SELECT TO_CHAR(SYSDATE,'HH') FROM DUAL;--04,12进制时间
SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;--16,24进制
SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;--31,分钟
SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;--11,秒钟SELECT SYSDATE - INTERVAL '10' YEAR FROM DUAL;--减去10年,2009-09-14 15:34:29
SELECT SYSDATE - INTERVAL '10' MONTH FROM DUAL;--减去10个月,2018-11-14 15:36:11
SELECT SYSDATE - 10 FROM DUAL;--减去10天,2019-09-04 15:31:58
SELECT SYSDATE - INTERVAL '10' DAY FROM DUAL;--减去10天,2019-09-04 15:31:58
SELECT SYSDATE - INTERVAL '10' MINUTE FROM DUAL;--减去10分钟,2019-09-14 15:12:10
SELECT SYSDATE - INTERVAL '10' HOUR FROM DUAL;--减去10小时,2019-09-14 5:23:01
SELECT SYSDATE - 2*INTERVAL '10' HOUR FROM DUAL;--时间间隔可以乘以一个数字,2019-09-13 19:37:24SELECT TO_DATE('20190914','YYYYMMDD') FROM DUAL;--2019-09-14
SELECT TO_DATE('2019-09-14 09:10:20','YYYY-MM-DD HH24:MI:SS') FROM DUAL;--2019-09-14 9:10:20SELECT LAST_DAY(SYSDATE) FROM DUAL;--本月最后一天,2019-09-30 11:30:52
SELECT LAST_DAY(DATE '2019-08-05') FROM DUAL;--指定日期所在月份的最后一天,2019-08-31
SELECT NEXT_DAY(TO_DATE('2019-09-14','YYYY-MM-DD'),'星期三') FROM DUAL;--指定日期的下个星期三的日期,2019-09-18--两个日期之间相差月份数(日期1>日期2,返回正数,日期1的天和日期2的天,同一天返回整数,不是同一天,返回小数)
SELECT
MONTHS_BETWEEN(TO_DATE('2019-09-14','YYYY-MM-DD'),TO_DATE('2018-10-11','YYYY-MM-DD')) AS 小数,-- 11.0967741935484
MONTHS_BETWEEN(TO_DATE('2019-09-14','YYYY-MM-DD'),TO_DATE('2018-10-14','YYYY-MM-DD')) AS 正整数,-- 11
MONTHS_BETWEEN(TO_DATE('2018-10-14','YYYY-MM-DD'),TO_DATE('2019-9-14','YYYY-MM-DD')) AS 负整数-- -11
FROM DUAL;SELECT FLOOR(MONTHS_BETWEEN(SYSDATE,DATE '2001-05-02')/12) AS 年龄 FROM DUAL;--18,计算日期之间差几个月,可计算年龄

日期提取、四舍五入、截取等

--提取日期时间里面的年、月、日、小时、分钟、秒钟
SELECT
EXTRACT(YEAR FROM TIMESTAMP '2019-08-22 16:33:45') AS 年,
EXTRACT(MONTH FROM TIMESTAMP '2019-08-22 16:33:45') AS 月,
EXTRACT(DAY FROM TIMESTAMP '2019-08-22 16:33:45') AS 日,
EXTRACT(HOUR FROM TIMESTAMP '2019-08-22 16:33:45') AS 小时,
EXTRACT(MINUTE FROM TIMESTAMP '2019-08-22 16:33:45') AS 分钟,
EXTRACT(SECOND FROM TIMESTAMP '2019-08-22 16:33:45') AS 秒钟
FROM DUAL;SELECT SYSDATE,--2019-09-14 11:58:35
ROUND(SYSDATE,'YYYY') AS 年,--2020-01-01
ROUND(SYSDATE,'MM') AS 月,--2019-09-01
ROUND(SYSDATE,'DD') AS 日,--2019-09-14
ROUND(SYSDATE,'HH24') AS 小时--2019-09-14 12:00:00
FROM DUAL;SELECT SYSDATE,--2019-09-14 12:01:12
TRUNC(SYSDATE,'YYYY') AS 年,--2019-01-01
TRUNC(SYSDATE,'MM') AS 月,--2019-09-01
TRUNC(SYSDATE,'DD') AS 日,--2019-09-14
TRUNC(SYSDATE,'HH24') AS 小时--2019-09-14 12:00:00
FROM DUAL;/*
相差天数:1
相差小时:24
相差分钟:1440
*/
DECLARE
START_DATE DATE;
END_DATE DATE;
BEGIN
START_DATE :=SYSDATE-1;
END_DATE:=SYSDATE;
DBMS_OUTPUT.PUT_LINE('相差天数:'||TO_NUMBER(END_DATE-START_DATE));
DBMS_OUTPUT.PUT_LINE('相差小时:'||TO_NUMBER(END_DATE-START_DATE)*24);
DBMS_OUTPUT.PUT_LINE('相差分钟:'||TO_NUMBER(END_DATE-START_DATE)*24*60);
END;--其他
SELECT TO_CHAR(1000000,'$9,999,999') FROM DUAL;--$1,000,000
SELECT TO_CHAR(10000,'L9,999,999') FROM DUAL;--¥10,000
SELECT TRUNC(TO_NUMBER('1000.123'),2) FROM DUAL;--1000.12
SELECT TO_NUMBER('1000.123') FROM DUAL; --1000.123--时间相加函数
CREATE OR REPLACE FUNCTION FUNC_AddTime(T1 IN DATE, T2 IN DATE) RETURN DATE IShh       NUMBER;mi       NUMBER;ss       NUMBER;hours    NUMBER;RES_TIME DATE;
BEGINSELECT TO_NUMBER(TO_CHAR(T2, 'HH24')) INTO hh FROM DUAL;SELECT TO_NUMBER(TO_CHAR(T2, 'MI')) INTO mi FROM DUAL;SELECT TO_NUMBER(TO_CHAR(T2, 'SS')) INTO ss FROM DUAL;hours := (hh + (mi / 60) + (ss / 3600)) / 24;SELECT T1 + hours INTO RES_TIME FROM DUAL;RETURN RES_TIME;
END;SELECT FUNC_AddTime(SYSDATE,TO_DATE('2018-09-09 05:20:22','YYYY-MM-DD HH24:MI:SS')) FROM DUAL;

Oracle日期时间汇总相关推荐

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

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

  2. Oracle 日期时间函数大全

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

  3. 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 ...

  4. oracle 选时间到五月,oracle日期时间函数小结

    oracle日期时间函数总结 经常写 sql 的同学应该会接触到一些 oracle 的日期时间函数, 例如: 财务软件或者人力资源软件需要按照每年, 每季度, 每月, 甚至每个星期来进行统计. 今天闲 ...

  5. oracle格式化列宽度,ORACLE日期时间的格式化参数大全

    经常遇到有朋友问询关于日期时间格式化的问题(或可以通过格式化轻易解决),经过参考Oracle SQL Reference官方文档,并附上详细的应用示例综合成文,希望能够对大家学习和使用有所帮助.本篇可 ...

  6. oracle存储格式化时间,ORACLE日期时间的格式化参数大全

    经常遇到有朋友问询关于日期时间格式化的问题(或可以通过格式化轻易解决),经过参考Oracle SQL Reference官方文档,并附上详细的应用示例综合成文,希望能够对大家学习和使用有所帮助.本篇可 ...

  7. Oracle 日期时间模糊查询

    将Oracle中时间字段转化成字段串,然后进行字符串模糊查询 select * from person p where to_char(p.birthday,'yyyy-MM-dd') like '2 ...

  8. oracle date类型,oracle 日期时间数据类型

    The DATE data type The TIMESTAMP data types: TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL ...

  9. ORACLE日期时间函数大全(一)

    TO_DATE格式(以时间:2007-11-02 13:45:25为例)  Year:  yy two digits 两位年 显示值:07 yyy three digits 三位年 显示值:007 y ...

最新文章

  1. 记录一次爬取某昵称网站的爬虫
  2. 三亚之旅 海景--美得让你尖叫
  3. 【前端】前端笔试题 [1]
  4. struts2标签处理下拉列表
  5. 自定义控件复选框和单选框的实现
  6. 简述div标签和span标签的不同_div与span区别及用法
  7. 自定义字体 (暂不支持中文)
  8. 得到多组单选框的值_多组学如何构建预后预测模型,还发了7分+?
  9. 回给collapsar的信
  10. 查看签名apk调试日志工具
  11. Android日历控件
  12. 回溯法实现求解子集合和问题
  13. 银湖私募基金为何投资展讯?
  14. 21款奔驰S400L升级原厂小柏林之声音响
  15. mybatis lazyload
  16. 如何使用微信开发者工具调试在微信端访问的网页
  17. sqlserver linux版本查询,sqlserver 各版本信息
  18. WebAssembly 与 Kubernetes双剑合璧
  19. oracle忘记某个用户密码,Oracle忘记用户名密码怎样恢复
  20. 电子狗产品在做宣传时发布图文笔记应该注意些什么?

热门文章

  1. 华为笔试题 简答错误记录(字符串处理,好题!!!)
  2. BZOJ4372: 烁烁的游戏【动态点分治】
  3. 【Python3爬虫】微博用户爬虫
  4. discuz完善用户资料任务不能完成的解决方法
  5. python成长之路10——socketserver源码分析
  6. 关于 HTTP 请求头的内容
  7. 财务模块多组织,GL, SLA, SOB, COA, BSV, CCID, LE 概念的简单介绍
  8. SQL Server 数据库维护脚本合集[007]-删除数据库所有用户表数据
  9. duilib CPaintManagerUI的WM_PAINT消息
  10. Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接