如何多次查询Where Datetime?

How to query Where Datetime many time?

我想多次查询日期时间。 但我尝试查询它不起作用。

示例

Table cus_bill

Number       Period
A-20160101   01/2015
A-20160410   04/2015
A-20160912   09/2015
A-20161020   10/2015
A-20161102   11/2015
A-20161219   12/2015

SQL

SELECT v.*
FROM cus_bill v
WHERE TO_DATE('01/'||V.PERIOD,'DD/MM/YYYY') >= TO_DATE('01/'|| '10/2015','DD/MM/YYYY') 
and TO_DATE('01/'||V.PERIOD,'DD/MM/YYYY') <= TO_DATE('01/'|| '12/2015','DD/MM/YYYY')
and V.PERIOD IN ('01/2015','09/2015')  

但它不起作用(0 行)。

期望输出:

Number       Period
A-20160101   01/2015
A-20160912   09/2015
A-20161020   10/2015
A-20161102   11/2015
A-20161219   12/2015
WHERE TO_DATE('01/'||V.PERIOD,'DD/MM/YYYY') >= TO_DATE('01/'|| '10/2015','DD/MM/YYYY') 
and TO_DATE('01/'||V.PERIOD,'DD/MM/YYYY') <= TO_DATE('01/'|| '12/2015','DD/MM/YYYY')
and V.PERIOD IN ('01/2015','09/2015')  

你不会得到任何行,因为你正在使用 AND 条件以及 IN 条件,这永远不会是真的在 01/10/201501/12/2015 之间永远不要有 '01/2015''09/2015'。即日期不能在 OctDec 之间,也不能同时在 JanSep 之间。

您需要 OR 条件。此外,您可以使用 BETWEEN 条件来减少代码:

WHERE   TO_DATE('01/'|| V.PERIOD,'DD/MM/YYYY') 
BETWEEN TO_DATE('01/'|| '10/2015','DD/MM/YYYY') 
AND     TO_DATE('01/'|| '12/2015','DD/MM/YYYY') 
OR      V.PERIOD IN  ('01/2015','09/2015')