Sql 使用日期参数列表查询日期范围列

Sql 使用日期参数列表查询日期范围列,sql,oracle10g,Sql,Oracle10g,我有一个Oracle10g表,其中包含两个日期列,date\u VALID\u FROM和date\u VALID\u TO 我的桌子: DATE_VALID_FROM | DATE_VALID_TO | VALUE 15-FEB-13 | 17-FEB-13 | 1.833 14-FEB-13 | 14-FEB-13 | 1.836 13-FEB-13 | 13-FEB-13 | 1.

我有一个Oracle10g表,其中包含两个日期列,date\u VALID\u FROM和date\u VALID\u TO

我的桌子:

DATE_VALID_FROM |   DATE_VALID_TO   |   VALUE

15-FEB-13       |   17-FEB-13       |   1.833
14-FEB-13       |   14-FEB-13       |   1.836
13-FEB-13       |   13-FEB-13       |   1.824
12-FEB-13       |   12-FEB-13       |   1.82
11-FEB-13       |   11-FEB-13       |   1.822
08-FEB-13       |   10-FEB-13       |   1.826
07-FEB-13       |   07-FEB-13       |   1.814
06-FEB-13       |   06-FEB-13       |   1.806
05-FEB-13       |   05-FEB-13       |   1.804
04-FEB-13       |   04-FEB-13       |   1.796
01-FEB-13       |   03-FEB-13       |   1.801
日期列上的范围并不总是一天周末

我可以像这样检索单个日期的值

select DATE_VALID_FROM, DATE_VALID_TO, VALUE 
from MY_TABLE
where DATE_VALID_FROM <= TO_DATE('16-FEB-13', 'dd-MON-yy')
and DATE_VALID_TO >= TO_DATE('16-FEB-13', 'dd-MON-yy')
尝试:


您可以为此使用集合:

SQL> create type mydatetab as table of date;
  2  /

Type created.

SQL> with dates as (select /*+ cardinality(t, 5) */ t.column_value thedate
  2                   from table(mydatetab(TO_DATE('16-FEB-13', 'dd-mon-rr'),
  3                                        TO_DATE('13-FEB-13', 'dd-mon-rr'))) t)
  4  select DATE_VALID_FROM, DATE_VALID_TO, VALUE
  5  from MY_TABLE, dates
  6  where dates.thedate between DATE_VALID_FROM and DATE_VALID_TO;

DATE_VALI DATE_VALI      VALUE
--------- --------- ----------
13-FEB-13 13-FEB-13      1.824
15-FEB-13 17-FEB-13      1.833
如果你没有权限创建一个ie,这只是一个临时的事情。可能有一些公共的你可以使用。选中select*from all_coll_types,其中elem_type_name='DATE'表示这些类型

p、 在使用日期时,应始终指定格式。i、 不要做:

TO_DATE('16-FEB-13')
而是:

TO_DATE('16-FEB-13', 'dd-MON-rr')

对不起,我不明白你想做什么。您正在尝试选择哪些日期的值?
TO_DATE('16-FEB-13')
TO_DATE('16-FEB-13', 'dd-MON-rr')