我有包括日期栏potatoeDate的表格测试。我想通过在这个列中按日期查询来获取记录。当我按日期查询Y.AA.AAAA到X.AA.AAAA时,总是得到Y.AA.AAAA到(X-1.AA.AAA)的记录。例如,我从2017年10月1日搜索到2017年10月30日,但我得到的记录范围是2017年10月1日至29日。
我尝试了我所知道的一切,事件子查询,但没有任何帮助。
我的尝试:
Select n1.potatoeDate
FROM (SELECT potatoeDate from test WHERE potatoeDate > '2017/05/07'::date) n1
WHERE n1.potatoeDate <= '2017/05/08'::date;
select *
from test
where potatoeDate between '2017/05/07' and '2017/05/08'
SELECT potatoeDate from test
where
potatoeDate >= '2017/05/07' AND
potatoeDate <= '2017/05/08'
--little hack
SELECT potatoeDate from test
WHERE
potatoeDate >= '2017/05/07'::date
AND
potatoeDate <= ('2017/05/08'::date)+1;
只有最后一个小的黑客查询工作。:|
有人能帮我吗?:)
最佳答案
我想potatoeDate
是timestamp
类型。
当您将date
与timestamp
进行比较时,如果timestamp
只有一秒的时间,则它会更大(时间会晚些)。尝试将adate
转换为timestamp
并查看它在时间字段中是否有00:00:00
。因此,timestamp
随着时间的不同而变大。