我正在尝试执行以下查询,
select symbol,effdate,anrev,morev
from perf_intra
where effdate
between TO_DATE('01/11/2014','dd/mm/yyyy')
and TO_DATE('05/12/2015','dd/mm/yyyy')
and TO_CHAR(effdate,'dd/mm') = '31/03';
我有满足这两个条件的记录。但是查询什么也没有返回,但是当我单独尝试这些条件时它会起作用。
任何人都可以帮我找到我的查询问题。
修改
让我以更清晰的方式提出我的问题, 让我们考虑一下,
查询
select symbol,effdate,anrev,morev
from perf_intra
where effdate between TO_DATE('25/11/2013','dd/mm/yyyy') and TO_DATE('05/12/2014','dd/mm/yyyy')
示例数据
BMA 25-NOV-13 12.00.00.000000000 AM 12.3977 11.2296
BMA 26-NOV-13 12.00.00.000000000 AM 12.4174 11.2468
BMA 27-NOV-13 12.00.00.000000000 AM 12.3991 11.2307
BMA 29-NOV-13 12.00.00.000000000 AM 12.3975 11.2294
BMA 02-DEC-13 12.00.00.000000000 AM 12.3631 11.1991
表格说明
Name Null Type
---------------------
SYMBOL VARCHAR2(20 CHAR)
EFFDATE TIMESTAMP(6)
ANREV VARCHAR2(20 CHAR)
MOREV VARCHAR2(20 CHAR)
REVAL VARCHAR2(20 CHAR)
我想要的所有记录的确定(3月31日)和2013年11月25日(2014年12月25日)之间
各位,
以下解决方案有效,
select symbol,effdate,anrev,morev
from perf_intra
where effdate between
TO_DATE('25/11/2013','dd/mm/yyyy') and
TO_DATE('05/12/2014','dd/mm/yyyy')
and EXTRACT(month FROM effdate)=3
and EXTRACT(day FROM effdate)=31
谢谢大家
答案 0 :(得分:1)
以下是以更易于遵循的日期格式编写的where
:
where effdate between date '2014-11-01' and date '2015-12-05' and
TO_CHAR(effdate, 'mm-dd') = '03-31';
满足这两个条件的唯一日期是'2015-03-31',所以你不妨写一下:
where effdate = date '2015-03-31'
或者也许:
where trunc(effdate) = date '2015-03-31'
我的猜测是你没有effdate
为'2015-03-31'的行。