假设我在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”的行,因为汉堡的时间已超过用户心中的时间,尽管“汉堡”的时间是近。)
答案 0 :(得分: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)