Oracle数据库中的日期比较

发布于 2024-09-03 00:30:41 字数 204 浏览 3 评论 0原文

我有两个变量 TO_DATEFROM_DATE。我的表有两个字段 DOJDOL。我想选择 DOJ DOJ 的所有记录TO_DATE 和 DOL > FROM_DATE

我该如何为此编写 SQL 查询?

I have two variable TO_DATE and FROM_DATE. My table has two fields DOJ and DOL. I want to select all the records where DOJ < TO_DATE and DOL > FROM_DATE.

How can I write an SQL query in for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

九歌凝 2024-09-10 00:30:41

您可能会遇到名为 to_date 的变量的问题,因为这是一个内置的 Oracle 命令。您可以在使用变量的任何地方使用双引号来解决这个问题,如下所示:

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

You might run into troubles with the variable named to_date, since that is a built-in Oracle command. You can work around that using double quotes wherever the variable is used, like this:

SELECT * FROM my_table WHERE doj < "to_date" AND dol > from_date;
北陌 2024-09-10 00:30:41

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

第一种解释

我想选择 DOJ < 的所有记录。 TO_DATE,同时,DOL > 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 < 的所有记录。 TO_DATE 和 DOL > 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";

It is not clear what you would like to do.

FIRST INTERPRETATION

I want to select all the records whose DOJ < TO_DATE and, IN THE MEANTIME, DOL > 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 ;-)

SECOND INTERPRETATION

I want to select all the records whose DOJ < TO_DATE and, SEPARATELY, DOL > 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";

... or - that is the same:

SELECT * 
  FROM MY_TABLE 
 WHERE DOJ < "TO_DATE" OR DOL > "FROM_DATE";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文