日期:2014-05-17  浏览次数:20863 次

sql时间查询,时间包含问题
表A字段如下,sdate为出差起止时间,edate为出差结束时间:
sdate                        edate                               createby
2013/3/22 0:00:00 2013/3/29 0:00:00   peter.ding
2013/3/22 0:00:00 2013/3/29 0:00:00           peter.ding
2013/3/30 0:00:00 2013/4/1 0:00:00   peter.ding

输入框搜索有起止时间sd和结束时间ed,要求只要搜索的时间段内,有出差在外的就要显示出来。只要在搜索的时间段内,就要显示出来。比如我搜2013-3-29----2013-3-30,那么上边三条都要显示。
select * from A WHERE   (sdate >= '2013-03-29 00:00:00') AND (sdate <= '2013-03-31 23:59:59') OR
                (edate >= '2013-03-29 00:00:00') AND (edate <= '2013-03-31 23:59:59')
这个并不对,请高人指点,谢谢

------解决方案--------------------
select * from A
WHERE (sdate BETWEEN '2013-03-29' AND '2013-03-30') 
   OR ('2013-03-29' BETWEEN sdate AND edate)

吐槽下,你明明是要结束日期为2013-3-30,怎么用了'2013-03-31 23:59:59'?