求一sql语句 ( 积分: 40 )

  • 主题发起人 主题发起人 undead_bxg
  • 开始时间 开始时间
U

undead_bxg

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个这样的问题,在下求一句SQL语句。<br>有两个字段比如叫做“工作开始时间”和“工作结束时间”。我想用一个给定的时间段A(<br><br>开始)、B(结束)查询“工作开始时间”和“工作结束时间”。<br>如果“工作开始时间”和“工作结束时间”这个时间区间中只要有一天在AB中就显示这条<br><br>记录。<br>谢谢。
 
select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(工作开始时间&gt;=a&nbsp;and&nbsp;工作开始时间&nbsp;&lt;=b)&nbsp;or&nbsp;(工作结束时间&gt;=a&nbsp;and&nbsp;工作结束时间&nbsp;&lt;=b)
 
是那种数据库?
 
表中比如有一条记录&nbsp;工作开始时间:2007-10-1&nbsp;&nbsp;工作结束时间2007-10-5<br>查询条件是2007-10-2到2007-10-4应该是能查出来这条记录的呀,但还是查不出来呀,你发的是不是错了。
 
我用的oracle&nbsp;大家给我一个思路就行,最好是不要用中间表什么的。
 
a&lt;=工作结束时间&nbsp;and&nbsp;b=&gt;工作开始时间
 
select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(工作开始时间&lt;=B)&nbsp;AND&nbsp;(工作结束时间&gt;=A)<br>因为你说的是只要工作开始时间或工作结束时间在AB之间就显示
 
还有不对呀,有不有人帮一下。
 
select&nbsp;*&nbsp;from&nbsp;tablename&nbsp;where&nbsp;(&nbsp;a&nbsp;&lt;=&nbsp;工作结束时间&nbsp;and&nbsp;a&nbsp;&gt;=&nbsp;工作结束时间&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;(&nbsp;b&nbsp;&lt;=&nbsp;工作结束时间&nbsp;and&nbsp;b&nbsp;&gt;=&nbsp;工作结束时间&nbsp;)
 
这是这意思3、4、5、6、7这组数,也就是说3~7这段中,只要给定的数在3~7中就会显示。<br>给定2、3、4是时,其中有3、4在3、4、5、6、7这组数中,所以条件就满足,并不是完全包括在内才显示。
 
SELECT&nbsp;*<br>FROM&nbsp;tablename<br>WHERE&nbsp;(工作开始时间&lt;=A&nbsp;&nbsp;&nbsp;and&nbsp;&nbsp;&nbsp;A&lt;=工作结束时间)&nbsp;or&nbsp;&nbsp;<br>&nbsp;&nbsp;(工作开始时间&lt;=#2007-10-15#&nbsp;&nbsp;&nbsp;and&nbsp;&nbsp;&nbsp;B&lt;=工作结束时间)&nbsp;or&nbsp;&nbsp;<br>&nbsp;&nbsp;(A&lt;=工作开始时间&nbsp;&nbsp;&nbsp;and&nbsp;&nbsp;&nbsp;工作结束时间&lt;=B);<br>这个是正确的查询语句,谢谢大家帮助。
 
select&nbsp;*&nbsp;from&nbsp;tablename&nbsp;<br>where&nbsp;工作开始时间&lt;=b&nbsp;and&nbsp;工作结束时间&gt;=a
 
虽然你已经有答案了,还是告诉你更简单的方法吧:<br>SELECT&nbsp;*<br>FROM&nbsp;tablename<br>WHERE&nbsp;not&nbsp;((B&lt;工作开始时间)&nbsp;or&nbsp;(A&gt;工作结束时间))
 
他用的oracle&nbsp;,不是SQL2000
 
.........大家都習慣TRANSQL90了&nbsp;&nbsp;哈哈
 

Similar threads

后退
顶部