0

假设我在 oracle 中有下表:

id|orderdatetime (date type)|foodtype (string type)
1|2013-12-02T00:26:00 | burger
2|2013-12-02T00:20:00 | fries

...(假设有很多日期和时间)

假设某人碰巧有一个日期(即“2010-12-02T00:25:00”)。即使那里没有具有该特定时间的数据库条目...是否有某种方法可以查询数据库,以便我可以获得日期时间最接近它的行,而不会提前记住日期(理想情况下,它会小于或等于)?

(即在这种情况下,sql 查询将返回“fries”而不是“burger”的行,因为 burger 的时间已经超过了用户想到的时间,尽管事实上“burger”的时间更近了。)

4

1 回答 1

2
select x.* from (select id,orderdatetime,foods from orders
where orderdatetime <= YOURTIME order by orderdatetime desc)x
where rownum =1

另一个是:

select * from orders where orderdatetime = (select max(orderdatetime) from orders
where orderdatetime <= YOURTIME)
于 2013-03-29T04:54:57.860 回答