前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试451】Oracle常用日期处理函数有哪些?这些函数可以实现哪些功能?

【DB笔试面试451】Oracle常用日期处理函数有哪些?这些函数可以实现哪些功能?

作者头像
小麦苗DBA宝典
发布2019-09-30 19:08:29
1.1K0
发布2019-09-30 19:08:29
举报
题目部分

Oracle常用日期处理函数有哪些?这些函数可以实现哪些功能?

答案部分

有关日期函数需要了解以下几点:

(1)日期函数用于处理DATE类型的数据。

(2)在日期上加上或减去一个数字结果仍为日期。

(3)两个日期相减返回日期之间相差的天数。

(4)默认情况下,日期格式为DD-MON-RR。

(5)查询当前数据库日期格式的命令:SELECT SYS_CONTEXT('USERENV','NLS_DATE_FORMAT') FROM DUAL;。

(6)SYSDATE:该函数返回系统时间。

(7)LAST_DAY(D):返回指定日期所在月份的最后一天。

(8)MONTHS_BETWEEN:表示两个日期的月份之差,即在给定的两个日期之间有多少个月。

(9)ADD_MONTHS(D,N):该函数将给定的日期增加N个月。当N为正数时,该函数将给定的日期增加N个月,为负数时减去N个月,该函数很常用,可以用来表示上个月、下个月,去年和下一年等等。

(10)NEXT_DAY(D,N):返回以时间点D为基准(开始),下一个“目标日N”的日期。

由于数据库以数字方式存储日期,因此,日期类型可以进行算术运算(加法或减法)。例如:可以给日期增加或减去一个数字,得到的结果还是一个日期值,两个日期相减,得到两个日期之间的天数,用小时除以24就可以得到天数。

SELECT TO_CHAR(SYSDATE, 'MM') FROM DUAL;--求月份

SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE), -1), 'YYYY-MM') FROM DUAL;--上一个月

SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE), 1), 'YYYY-MM') FROM DUAL;--下一个月

SELECT SYSDATE,ADD_MONTHS(SYSDATE, -12) FROM DUAL;--去年

SELECT EMPNO,HIREDATE,MONTHS_BETWEEN(SYSDATE,HIREDATE)/12 YEARS FROM SCOTT.EMP;

另外,日期中常用到的一个修改日期语言的SQL:

修改为英文:ALTER SESSION SET NLS_LANGUAGE='AMERICAN';

修改为中文:ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';

在英语的环境中,查询星期时要用英文,示例代码如下所示:

代码语言:javascript
复制
SYS@lhrdb21> SELECT NEXT_DAY(SYSDATE,'星期二') FROM DUAL;
SELECT NEXT_DAY(SYSDATE,'星期二') FROM DUAL
                        *
ERROR at line 1:
ORA-01846: not a valid day of the week
SYS@lhrdb21> ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';
会话已更改。
SYS@lhrdb21> SELECT NEXT_DAY(SYSDATE,'星期二') FROM DUAL;
NEXT_DAY(SYSDATE,'
-------------------
2016-09-13 09:32:58
判断当天是否月份最后一天的代码如下所示:
SYS@lhrdb21> WITH T AS
  2  (SELECT   SYSDATE DAT FROM DUAL)
  3  SELECT DECODE(DAT, LAST_DAY(DAT), 'YES', 'NO') FROM T;
DEC
---
NO
SYS@lhrdb21> SELECT SYSDATE FROM DUAL;
SYSDATE
-------------------
2016-09-09 09:33:56

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

About Me:小麦苗

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档