0

我正在键入 SQL 查询以从基于 Oracle 数据库的软件工具中获取一些数据。我正在使用典型的SELECT- 语句。

现在,在我的 SQL 查询中,我在不同的地方使用日期“02.05.2012”。有没有办法date_string在开始时定义一个变量,然后在所有相关的地方使用这个变量?

这会简化很多事情。感谢所有提示和提示!

4

5 回答 5

4

您可能会尝试重写查询以从内联视图返回文字...

select
   my_date,
   ...
from(
   select to_date('02.05.2012','DD.MM.YYYY') my_date from dual),
   table2
where
   some_column <= my_date
于 2012-05-02T11:24:59.543 回答
2

您要查找的是绑定变量。

select to-date(:date, 'dd.mm.yyyy') date1
,      to-date(:date, 'dd.mm.yyyy') + 1 date2
from   dual

在运行时,您需要将值传递给绑定变量。这完全取决于您的编程语言如何绑定变量,但是有大量的文档。DEFINE 仅在您使用 sql*plus 时才有效,而在“软件工具”中通常不是这种情况:)

编辑:

我现在开始明白了。它只是一个文本区域,您可以在其中输入查询,它将执行并返回结果。在这种情况下,您要么编写一些复杂的 pl/sql 代码,要么手动输入所有日期,或者使用带有 select from dual 的交叉连接:

with (select to_date('02.05.2012', 'dd.mm.yyyy') my_date from dual) d
select *
from   some_table t
cross join d -- no ON required 
于 2012-05-02T10:22:18.540 回答
1

如果要选择使用当前日期,可以使用 sysdate。

使用 SQLPLUS,您可以定义自己的变量:

SQL> define mydate ="01-05-2012"

SQL> select to_date('&mydate','DD-MM-YYYY') from dual;

01-MAY-12
于 2012-05-02T08:48:35.193 回答
0

尝试以下操作:

SELECT *
  FROM table1
 WHERE to_char(date1,'DD/MM/YYYY') = '&&date'
   AND to_char(date2,'DD/MM/YYYY') = '&&date'
   AND to_char(date3,'DD/MM/YYYY') = '&&date'

你会得到一个提示输入 &&date 的值,如果你想为每个日期输入不同的值,你应该输入 &date 而不是 &&date

于 2012-05-02T08:52:09.950 回答
0

DEFINE对您的要求很有用。

DEFINE NAME="example"

访问&NAME

于 2012-05-02T08:59:52.400 回答