[英]Oracle Date query between and equals
我正在尝试执行以下查询,
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)
我想要所有日期为(Mar 31)且介于(25/11/2013)至(05/12/2014)之间的记录
伙计们,
以下解决方案有效,
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
谢谢你们
这是以更容易理解的日期格式编写的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'的行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.