Oracle数据库中的日期比较

时间:2010-05-26 11:05:25

标签: oracle date plsql

我有两个变量TO_DATEFROM_DATE。我的表格有两个字段DOJDOL。我想选择DOJ < TO_DATE and DOL > FROM_DATE

的所有记录

如何为此编写SQL查询?

2 个答案:

答案 0 :(得分:2)

您可能会遇到名为to_date的变量的麻烦,因为这是一个内置的Oracle命令。无论使用哪个变量,您都可以使用双引号解决这个问题,如下所示:

SELECT * FROM my_table WHERE doj < "to_date" AND dol > from_date;

答案 1 :(得分:0)

目前尚不清楚你想做什么。

第一次解释

我想选择DOJ&lt;的所有记录。在时间和时间上,DOL&gt; FROM_DATE。

SELECT *
  FROM MY_TABLE
 WHERE DOJ < "TO_DATE" AND DOL > "FROM_DATE"; -- using double quotes in order to
                                              -- avoid confusion with TO_DATE
                                              -- built-in function with the same name.
                                              -- Thanks to kicsit ;-)

第二次解释

我想选择DOJ&lt;的所有记录。 TO_DATE和,SEPALLATELY,DOL&gt; FROM_DATE。

SELECT *
  FROM MY_TABLE
 WHERE DOJ < "TO_DATE"
UNION -- UNION ALL substituted with UNION, thanks to kicsit user ;-)
SELECT *
  FROM MY_TABLE
 WHERE DOL > "FROM_DATE";

......或 - 是一样的:

SELECT * 
  FROM MY_TABLE 
 WHERE DOJ < "TO_DATE" OR DOL > "FROM_DATE";