店铺里一般是一段时间有优惠活动,比如五月1号-五月4号 五折
要查出店铺一段时间里做了哪些活动,比如我想知道2013-01-01 至 2014-06-06 这段时间做了哪些活动
开始用between写,实现不了
后面想到如下方法
select * from f_jsm
where ('时间1'<=jsm_rq1 or '时间1' <= jsm_rq2)
and (jsm_rq1<='时间2' or jsm_rq2<='时间2) and jsm_dm_dm='0204'
select f * from f_jsm
where ('2014-04-29'<=jsm_rq1 or '2014-04-29' <= jsm_rq2)
and (jsm_rq1<='2014-05-08' or jsm_rq2<='2014-05-08') and jsm_dm_dm='0204'
优化如下:
select * from f_jsm
where ('时间2' <= jsm_rq2)
and (jsm_rq1<='时间1' ) and jsm_dm_dm='0204'
select * from f_jsm
where ('2014-04-29' <= jsm_rq2)
and (jsm_rq1<='2014-05-08' ) and jsm_dm_dm='0204'
总结:between 是小的时间跟小的时间比,大的时间跟大的时间比
后面的方法是大跟小比,小跟大比