最近小编在学习oracle数据库,今天在学习sql语句时突然想用刚学习的oracle数据库函数来取出下个月的第一天是具体多少号。小编首先想到的是用oracle数据库自带的函数NEXT_DAY(date,char) 其中date参数为日期型, char:为1~7或Monday/Mon~Sunday/。
小编写的sql语句时这样的:select next_day(last_day(sysdate),1) from dual;但出现的结果总是4月2日,如图:
后来小编又仔细看了NEXT_DAY(date,char)函数的解析,原来next_day(sysdate,1)其中参数"1"指的是“星期日”,这个函数应该是找下一个“星期几”的函数,第二个参数支持中文的‘星期几’还有就是 1——星期日,2——星期一,3——星期二,以此类推,一共可以写1-7的数字作为简写。如图:
最后小编又想到了用另外一个函数last_day(time):返回指定日期所在月份的最后一天;,那最后一天+1是不是就是下个月的第一天呢?
select last_day(sysdate)+1 from dual;
答案是肯定的,两个不同的函数都可以实现这样的功能呢?是不是很有趣。