首页 > 数据库 >Oracle的LAST_DAY函数

Oracle的LAST_DAY函数

时间:2022-12-09 16:36:57浏览次数:33  
标签:SYSDATE 01 last day Oracle LAST 2008 DAY

原文地址:https://blog.csdn.net/WuLex/article/details/80855523

Oracle中last_day()函数的用法

last_day(time):返回指定日期所在月份的最后一天;

查询当前月份的最后一天:

select last_day(sysdate) from dual;
  • 1

查询某天所在月份的最后一天:

select last_day(to_date('1992-10-09','yyyy-mm-dd')) from dual;
  • 1

如:

查询每一个月最后一天过生日的同学:

select * from stu where last_day(birthday) = birthday;
  • 1

oracleLAST_DAY()函数

LAST_DAY函数返回指定日期对应月份的最后一天。

获取当前日期的最后一天

SQL> SELECT last_day(SYSDATE) FROM dual;
  • 1

运行结果:

LAST_DAY(SYSDATE)
-----------------
2016/12/31 15:39:
  • 1
  • 2
  • 3

获取当前日期和当前日期所在月的最后一天

SQL> SELECT SYSDATE,
          LAST_DAY(SYSDATE) "Last",
         LAST_DAY(SYSDATE) - SYSDATE "Days Left"
      FROM DUAL;
  • 1
  • 2
  • 3
  • 4

运行结果:

SYSDATE        Last            Days Left
-----------   -----------     ----------
2016/12/18    2016/12/31       13
  • 1
  • 2
  • 3

获取当前日期所在月的第一天和最后一天:

SQL> SELECT TRUNC(SYSDATE, 'MONTH') FIRSTDAY,
           LAST_DAY(TRUNC(SYSDATE, 'MONTH')) LASTDAY
        FROM DUAL;
  • 1
  • 2
  • 3

运行结果:

FIRSTDAY       LASTDAY
-----------    -----------
2016/12/1      2016/12/31
  • 1
  • 2
  • 3
  • 4

其实这些日期函数我们通常都是用来嵌套使用的,例如下面这个实例:

求当前日期的上个月月初和上个月月末日期

SELECT 
    TRUNC(add_months(SYSDATE,-1),'mm') AS first_day
   ,last_day(add_months(SYSDATE,-1)) AS last_day
FROM dual;
  • 1
  • 2
  • 3
  • 4

运行结果:

FIRST_DAY     LAST_DAY
-----------   -----------
2016/11/1     2016/11/30
  • 1
  • 2
  • 3

oracle substr,to_date,to_char,first_day,last_day用法

  • substr()截取字符串:如:2008-05-01 我要得到2008则可这样子写:
    substr('2008-05-01',1,4);
    截取后的字符串可以用||拼成一个新的字符串:如:得到2008-1-1,可写为:substr('2008-5-1',1,4)||'01-01';
  • to_date()可以将截取后的字符串转换为相应的时间类型:('mystring','formatstring')正好是将string类型的字符串转换为时间对象,可以这样写:to_date(substr('2008-5-1',1,4)||'01-01'),yyyy-mm-dd);
  • to_char()函数恰好相反,是将对象类型转换为相应的字符类型:如:to_char(to_date(substr('2008-5-1',1,4)||'01-01'),yyyy-mm-dd));查询出来的将是一个字符类型.
  • first_day()得到一个月中的第一天:如first_day(to_date('2008-5-22','yyyy-mm-dd'))
    结果:2008-5-1
  • last_day()得到一个月最后的一天:如:last_day(to_date('2008-5-22','yyyy-mm-dd'))
    结果:2008-5-31

oracle函数大全 之 next_day last_day

格式:NEXT_DAY(DATE,WEEKDAY) 即 NEXT_DAY(日期,星期几)

NEXT_DAT函数返回输入日期开始,未来最近的指定星期对应的日期,直接写 ‘星期一’

例如:select next_day(sysdate,'星期一') from dual;

返回 当前时间之后的第一个星期一的时间(比如今天’7月18号0:01:01’,星期三,则返回’7月23号0:01:01’,自己数)

格式:last_day(date) 即last_day(某个日期)

select last_day(sysdate) from dual;
  • 1

返回特定日期所在月份的最后一天

例如:找出每个月倒数第三天入职的员工

SELECT * FROM EMP WHERE last_day(hiredate)-2=hiredate;
  • 1

解释:last_day(hiredate)得到的是每个员工入职当有的最后一天,-2表示倒数第三天,如果与员工入职时间相等,说明这个员工是当月倒数第三天入职的

标签:SYSDATE,01,last,day,Oracle,LAST,2008,DAY
From: https://www.cnblogs.com/eyesfree/p/16969277.html

相关文章

  • Day2 JAVASE
    instanceof继承关系Object>StringObject>Person>StudentObject>Person>TeacherSystem.out.println(xinstanceofy)//编译能不能通过看x,y有无继承关系 类型的转换......
  • day49 redis安装、Another-Redis-Desktop-Manager & redis数据类型 &集成redis(jedis)
    关系型数据库MySQL、SQLServer、Oracle、postgreSQL(pg)数据存储位置:硬盘数据存储结构:行和列优点:可以实现更复杂的业务逻辑(事务、存储过程、索引)、持久化保存哪种类型......
  • MYSQL 1 DAY
    目录MySQL1、sql、DB、DBMS分别是什么,他们之间的关系?2、什么是表?3、学习MySQL主要还是学习通用的SQL语句,那么SQL语句包括增删改查,SQL语句怎么分类呢?4、导入数据(后期大家练......
  • Elasticsearch的SearchAfter
    Elasticsearch使用SearchAfter深度分页,分页的方式是上一页的最后一条数据sort里面的值来确定下一页的位置,在分页请求的过程中,有索引数据的增删,会实时的反映到游标上。每一......
  • elasticsearch别名
    es创建别名的好处:1、不暴露索引名2、可以为多个结构类似的索引(动态索引)创建相同的别名,查询的时候直接查询别名,然后自动匹配多个索引。在不同的索引创建窗口。比如,如果......
  • Maven - oracle ojdbc jar包报错:Could not find artifact com.oracle:ojdbc8
    oracleojdbcjar包报错:Couldnotfindartifactcom.oracle:ojdbc8 在IDEA中引入一个新项目时,由于项目中引入了如下依赖:<dependency><groupId>c......
  • KubeSphere 接入外部 Elasticsearch 最佳实践
    作者:张坚,科大讯飞开发工程师,云原生爱好者。大家好,我是张坚。今天来聊聊如何在KubeSphere中集成外置的ES组件。KubeSphere在安装完成时候可以启用日志组件,这样会安装ES......
  • KubeSphere 接入外部 Elasticsearch 最佳实践
    作者:张坚,科大讯飞开发工程师,云原生爱好者。大家好,我是张坚。今天来聊聊如何在KubeSphere中集成外置的ES组件。KubeSphere在安装完成时候可以启用日志组件,这样会安......
  • oracle每日挑战-第二天
    当发出altertabletabaddprimarykey(object_id)usingindexind_tab_object_id;命令,在tab_p表的object_id列上创建主键约束,并指定使用此前已事先创建好的,名为ind_ta......
  • oracle - 数据库版本说明
    1998年Oracle8i:i指internet,表示oracle向互联网发展,8i之前数据库只能对应1个实例2001年Oracle9i:8i的升级,性能更佳,管理更人性化2003年Oracle10g:g指grid,表示采用网格计算的......