获取当前日期XX天后的日期 获取当前日期XX月后的日期

获取当前日期两个月后的日期

select  add_months(sysdate,2) from dual 

获取当前日期20天后的日期

select sysdate+20 from dual


select to_char(sysdate,'dy') from dual; --返回当前日期星期几

select to_char(sysdate,'ww') from dual; --返回当前日期是第几周

SELECT TO_CHAR(SYSDATE,'DAY') FROM dual;----一周中的星期几
select to_char(add_months(sysdate,-1),'day') from dual;--上一个月同一天星期几
select to_char(add_months(sysdate,1),'day') from dual;--下一个月同一天星期几
select to_char(last_day(add_months(sysdate,-1)),'day') from dual;--上一个月最后一天星期几
select to_char(last_day(add_months(sysdate,-2))+1,'day') from dual;--上一个月第一天星期几




any与Exists函数的区别

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
EXISTS 指定一个子查询,检测 行 的存在。

比较使用 EXISTS 和 = ANY 的查询。注意两个查询返回相同的结果。
select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)
select * from TableIn where ANAME=ANY(select BNAME from TableEx)


any与all函数的区别

any表示任意一个,all表示所有的。
如果有张学生记录表student中有一个属性组为age
现在要查找年龄在某个区间上的学生记录就有如下操作
1、查找年龄比15、16、22、21、17、18、19中任意一个都小的学生记录就有如下代码:
select *
from student
where age<any(15,16,22,21,17,18,19)

2、查找年龄比15、16、22、21、17、18、19中任意一个都大的学生记录就有如下代码:
select *
from student
where age>any(15,16,22,21,17,18,19)
/*这里用any 和all是等效的*/用all是大于所有的意思 
用all就改为:
where age>all(15,16,22,21,17,18,19) 

这里<any就是iname小于括号内部那个子查询所的结果中的任意一个值,也就是说小于其中最小的一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值