【问题标题】:Select data between dates from oracle (date type)从 oracle 中选择日期之间的数据(日期类型)
【发布时间】:2018-09-24 15:53:20
【问题描述】:

我的数据库中有这些数据,我只想在几天之间进行选择(不包括在内。从这些数据中,只需要从第 14 天开始提取。

ID          REFERENCE       REQUEST_DATE (TYPE DATE)
2141777690  1500541052868   14/04/18
2141777750  1500541052868   14/04/18
2141777810  1500541052868   14/04/18
2141777870  1500541052868   14/04/18
2141777930  1500541052868   14/04/18
2141778080  1500541052868   14/04/18
2141778470  1500541052868   13/04/18
2141778590  1500541052868   13/04/18
2141778980  1500541052868   13/04/18
2141779010  1500541052868   13/04/18
2141779100  1500541052868   13/04/18

我试过这个(11 个结果):

select count(entitypoll0_.ID) as col_0_0_ from MY_TABLE entitypoll0_
where entitypoll0_.POLL_ID=1500541052868 
and entitypoll0_.REQUEST_DATE > TO_DATE('2018-04-13','YYYY-MM-DD') 
and entitypoll0_.REQUEST_DATE < TO_DATE('2018-04-15','YYYY-MM-DD')

我试过这个(11 个结果):

select count(entitypoll0_.ID) as col_0_0_ from MY_TABLE entitypoll0_
where entitypoll0_.POLL_ID=1500541052868 
and (entitypoll0_.REQUEST_DATE between TO_DATE('2018-04-13','YYYY-MM-DD') and TO_DATE('2018-04-15','YYYY-MM-DD'));

顺便说一句,我在第 14 天只有 5 个结果,我做错了什么?我没有节省时间,我认为这对于这种类型的查询应该足够了。

谢谢

【问题讨论】:

    标签: java oracle date jpa


    【解决方案1】:

    “我没有节省时间”

    你确定吗?最明显的解释是REQUEST_DATE 的值包含一个时间元素。您可以通过截断删除时间元素的列来轻松检查这一点。这应该会给你预期的结果。

    select count(entitypoll0_.ID) as col_0_0_ 
    from MY_TABLE entitypoll0_
    where entitypoll0_.POLL_ID=1500541052868 
    and trunc(entitypoll0_.REQUEST_DATE) > TO_DATE('2018-04-13','YYYY-MM-DD') 
    and trunc(entitypoll0_.REQUEST_DATE) < TO_DATE('2018-04-15','YYYY-MM-DD')
    

    “我假设使用日期类型(而不是时间戳等)会给我没有时间的日期数据”

    Oracle 的 DATE 日期类型实际上是一个日期时间,这让很多刚接触数据库的人感到困惑。 TIMESTAMP 更精确(小数秒)并支持时区。

    【讨论】:

    • 谢谢@APC,我假设使用日期类型(而不是时间戳等)会给我没有时间的日期数据:)
    • 我猜第二个 (request_date &lt; literal) 会有所不同。
    【解决方案2】:

    从这些数据中,只需要从第 14 天提取。

    只需使用AND REQUEST_DATE &gt;= DATE '2018-04-14' and REQUEST_DATE &lt; DATE '2018-04-14' + 1

    应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-21
      • 2015-07-16
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多