比较两个时间段不能重合(时间点可以重合,时间段不能重合)

				 StringBuffer sqlLeave = new StringBuffer();
				 sqlLeave.append("/*dialect*/  SELECT count(1) c FROM  T_HR_ATS_LeaveBillEntry entry").append("\n");
				 sqlLeave.append("left join T_HR_ATS_LeaveBill bill ON ENTRY.FBILLID = BILL.FID").append("\n");
				 sqlLeave.append("left join t_bd_person  person ON ENTRY.FPERSONID = PERSON.FID").append("\n");
				 sqlLeave.append("  where  person.fid = '"+personid+"'").append("\n");
				 sqlLeave.append("  and to_char(entry.FRealBeginTime,'YYYY-MM-DD HH24:MI:SS')<='" + sdf.format(begindate) + "'  ").append("\n");
				 sqlLeave.append("  and to_char(entry.FRealEndTime,'YYYY-MM-DD HH24:MI:SS')>'" + sdf.format(begindate) + "'  ").append("\n");
				 sqlLeave.append("  or ( person.fid = '"+personid+"' and to_char(entry.FRealBeginTime,'YYYY-MM-DD HH24:MI:SS')<'" + sdf.format(enddate) + "'  ").append("\n");
				 sqlLeave.append("  and to_char(entry.FRealEndTime,'YYYY-MM-DD HH24:MI:SS')>='" + sdf.format(enddate) + "' ) ").append("\n");


				 sqlLeave.append("  or ( person.fid = '"+personid+"' and to_char(entry.FRealBeginTime,'YYYY-MM-DD HH24:MI:SS')>='" + sdf.format(begindate) + "'  ").append("\n");
				 sqlLeave.append("  and to_char(entry.FRealEndTime,'YYYY-MM-DD HH24:MI:SS')<='" + sdf.format(enddate) + "'  and  entry.FRealBeginTime !=entry.FRealEndTime ) ").append("\n");

总结:A B两个时间段  A为已有时间段,B为想插入的时间段 

A开始<=B开始 A结束>B开始     or

A开始>B结束  A结束<=B开始   or

A开始>=B开始  A结束<=B结束  A开始<>B开始 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值