我已经蒙了。。 问一个sql的问题

渔樵耕读 发布于 2013/01/25 11:21
阅读 331
收藏 1

oracle 环境

我现在有一个qj_info表 里面包含两个时间类型的字段 qj_start(请假开始时间),qj_end(请假结束时间)

页面上有两个时间控件  例为: id=‘beginTime’ 和id=‘endTime’

我现在要完成一个功能就是按照页面的两个起至的时间控件  去查询 qj_info表里的信息。

这个sql 该怎么写 才能最合适的?



加载中
1
xwz
xwz

引用来自“2578777212”的答案

搞不懂你这两个 起至的时间控件代表的意思

对头,你首先要搞明白,你时间控件的意思

1 指提出请假时间在这个时间段

qj_start between 'beginTime' and 'endTime'

2 结束请假时间再这个时间段

qj_end between 'beginTime' and 'endTime'

3 这个时间段有请假

((qj_start between 'beginTime' and 'endTime') and (qj_end between 'beginTime' and 'endTime') ) --输入时间段和请假段交叉
or
(('beginTime'>=qj_start and 'endTime'<=qj_end )--输入时间段在请假段内

KelvinQ
KelvinQ
3.第一个表达式这个应该用OR吧,只需要任意一个时间点在范围内就有效。 ((qj_start between 'beginTime' and 'endTime') or (qj_end between 'beginTime' and 'endTime'))or(('beginTime'>qj_start and 'endTime'<qj_end )
0
小虾米呀小虾米
小虾米呀小虾米
搞不懂你这两个 起至的时间控件代表的意思
0
缪斯的情人
缪斯的情人
between···and
0
快到马桶里来
快到马桶里来
select * from qj_info qj where qj.qjTime>=to_date('"+beginTime+"'+' 00:00:00','yyyy-mm-dd hh24:mi:ss') and qj.qjTime<=to_date('"+endTime+"'+' 00:00:00','yyyy-mm-dd hh24:mi:ss');
0
天马行空&
天马行空&

通过开始时间判断在条件的时间之间.结束时间可以不用考虑.

hql.append(" select * from qj_info and qj_start between to_date('"+ beginTime+ "','yyyy-MM-DD') and to_date('" + endTime+ "','yyyy-MM-DD')");




0
渔樵耕读
渔樵耕读

引用来自“xwz”的答案

引用来自“2578777212”的答案

搞不懂你这两个 起至的时间控件代表的意思

对头,你首先要搞明白,你时间控件的意思

1 指提出请假时间在这个时间段

qj_start between 'beginTime' and 'endTime'

2 结束请假时间再这个时间段

qj_end between 'beginTime' and 'endTime'

3 这个时间段有请假

((qj_start between 'beginTime' and 'endTime') and (qj_end between 'beginTime' and 'endTime') ) --输入时间段和请假段交叉
or
(('beginTime'>=qj_start and 'endTime'<=qj_end )--输入时间段在请假段内

就要这个!   您说的第三种情况

这个时间段有假期就可以啦

3q

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部