Oracle的LAST_DAY函数Oracle中last_day()函数的⽤法
last_day(time):返回指定⽇期所在⽉份的最后⼀天;
查询当前⽉份的最后⼀天:
select last_day(sysdate) from dual;
查询某天所在⽉份的最后⼀天:
select last_day(to_date('1992-10-09','yyyy-mm-dd')) from dual;
如:
查询每⼀个⽉最后⼀天过⽣⽇的同学:
select * from stu where last_day(birthday) = birthday;
oracle的LAST_DAY()函数
LAST_DAY函数返回指定⽇期对应⽉份的最后⼀天。
获取当前⽇期的最后⼀天
SQL> SELECT last_day(SYSDATE) FROM dual;
运⾏结果:
LAST_DAY(SYSDATE)
-----------------
2016/12/31 15:39:oracle中trunc函数用法
获取当前⽇期和当前⽇期所在⽉的最后⼀天
SQL> SELECT SYSDATE,
LAST_DAY(SYSDATE) "Last",
LAST_DAY(SYSDATE) - SYSDATE "Days Left"
FROM DUAL;
运⾏结果:
SYSDATE Last Days Left
--------------------------------
2016/12/182016/12/3113
获取当前⽇期所在⽉的第⼀天和最后⼀天:
SQL> SELECT TRUNC(SYSDATE, 'MONTH') FIRSTDAY,
LAST_DAY(TRUNC(SYSDATE, 'MONTH')) LASTDAY
FROM DUAL;
运⾏结果:
FIRSTDAY LASTDAY
----------------------
2016/12/12016/12/31
其实这些⽇期函数我们通常都是⽤来嵌套使⽤的,例如下⾯这个实例:
求当前⽇期的上个⽉⽉初和上个⽉⽉末⽇期
SELECT
TRUNC(add_months(SYSDATE,-1),'mm') AS first_day
,last_day(add_months(SYSDATE,-1)) AS last_day
FROM dual;
运⾏结果:
FIRST_DAY LAST_DAY
----------------------
2016/11/12016/11/30
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;
返回特定⽇期所在⽉份的最后⼀天
例如:出每个⽉倒数第三天⼊职的员⼯
SELECT * FROM EMP WHERE last_day(hiredate)-2=hiredate;
解释:last_day(hiredate)得到的是每个员⼯⼊职当有的最后⼀天,-2表⽰倒数第三天,如果与员⼯⼊职时间相等,说明这个员⼯是当⽉倒数第三天⼊职的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。