选择两个日期之间的数据

use*_*075 1 sql oracle date

我想获取'20130501'的数据

以下是我将'20130501'作为开始日期,'20130502'作为结束日期的查询.

SELECT A.NAME, A.GENDER
                FROM TABLE A
              WHERE 
               A.DTM >= TO_DATE('20130501','YYYYMMDD')
              AND A.DTM <= TO_DATE('20130502','YYYYMMDD')
Run Code Online (Sandbox Code Playgroud)

上面的查询给出了'20130501'的数据.但现在我想为开始和结束日期输入数据输入'20130501'.以下是查询

SELECT A.NAME, A.GENDER
                FROM TABLE A
              WHERE 
               A.DTM >= TO_DATE('20130501','YYYYMMDD')
              AND A.DTM <= TO_DATE('20130501','YYYYMMDD')
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,我得不到任何数据.我认为这是因为DB同时读取'20130501'.但我希望它是'20130501 00:00'到'20130501 24:00'

那么任何人都可以修复查询吗?

Joa*_*son 7

只需在第二个日期添加一天,然后<用于比较;

SELECT A.NAME, A.GENDER
FROM A
WHERE A.DTM >= TO_DATE('20130501','YYYYMMDD')
  AND A.DTM <  TO_DATE('20130501','YYYYMMDD')+1
Run Code Online (Sandbox Code Playgroud)

一个要测试的SQLfiddle.