我正在尝试从范围中选择特定日期的数据,但不是在某组参数范围内。
目前:
SELECT external_reporting_id AS asin,
last_updated AS "Received"
FROM transfer_delivery_items
WHERE last_updated >= TO_DATE(sysdate, 'DD-MON-YY') - 13
ORDER BY last_updated DESC;
但是我希望看到所有内容都不在该日期范围内。
我已经尝试了>= TO_DATE(sysdate, 'DD-MON-YY')-13
,但它看起来不像是批准的格式,甚至可能有任何东西可以借给我一只手很棒。
答案 0 :(得分:1)
sysdate已经是一个日期,所以如果您想要在13天之前完成所有操作:
select external_reporting_id ASIN, last_updated as "Received"
from transfer_delivery_items
where last_updated >= trunc(sysdate) -13
order by last_updated desc;
trunc(sysdate)
将删除该日期的时间,以包含13天前的所有记录。
注意:我不会这样做
trunc(last_updated) >= trunc(sysdate)
因为last_updaetd
可能是索引列,trunc(last_update)
会绕过该索引。 (除非trunc(last_updated)
上有函数索引。
要在13天前和未来13天内获取日期块,请执行以下操作:
select external_reporting_id ASIN, last_updated as "Received"
from transfer_delivery_items
where last_updated >= trunc(sysdate) -13
and last_updated <= trunc(sysdate) +13
order by last_updated desc;
答案 1 :(得分:0)
它认为你不能在BETWEEN:http://docs.oracle.com/cd/B28359_01/server.111/b28286/conditions011.htm#SQLRF52147
我没有可用的Oracle实例,或者我测试了它。我很确定它会起作用。