我想问一下各位:
1.select * from p_team pt where pt.p_product_id=1860745 and pt.valid='Y' and
(pt.takeoff_date like '201110%' or pt.takeoff_date like '201111%') 查询10月份和11月份的数据
201110代表:2011年10月
查询中的takeoff_date定义的类型是INTEGER,我用的是like匹配 这样写合理吗? 2.select * from p_team pt where pt.p_product_id=1860745 and pt.valid='Y' and
((pt.takeoff_date>=20111001 and pt.takeoff_date<=20111031) or
(pt.takeoff_date>=20111101 and pt.takeoff_date<=20111130))
两条语句查询出来的数据是一致的;请问他们从各方面比较那种方法好。
1.select * from p_team pt where pt.p_product_id=1860745 and pt.valid='Y' and
(pt.takeoff_date like '201110%' or pt.takeoff_date like '201111%') 查询10月份和11月份的数据
201110代表:2011年10月
查询中的takeoff_date定义的类型是INTEGER,我用的是like匹配 这样写合理吗? 2.select * from p_team pt where pt.p_product_id=1860745 and pt.valid='Y' and
((pt.takeoff_date>=20111001 and pt.takeoff_date<=20111031) or
(pt.takeoff_date>=20111101 and pt.takeoff_date<=20111130))
两条语句查询出来的数据是一致的;请问他们从各方面比较那种方法好。
我测过了第一种方法执行时间是:0.234 secondes 第二种是:0.219 secondes 18条数据 证明了第二中写法速度快了点。
但第一种的写法简单些,如果是大家在用的时候;会选择哪种呢?
一般用第二种。
很少有把日期做LIKE的。
(to_char(pt.takeoff_date) like '201110%' or to_char(pt.takeoff_date) like '201111%')
所以用第一种的话最好改成varchar2的。