SQL。从一系列时间戳中选择最高值

时间:2014-07-23 18:44:47

标签: sql oracle10g

我有这样的代码。我的预期结果是从一组设定的时间戳中获取最高值。我不确定为什么这不起作用。我正在使用Oracles SQL 10.请提前感谢您的帮助。

代码

 SELECT value, timestamp
      FROM farm1 f
     WHERE timestamp between 1405987200 and (1405987200 + 86400)
     where value =
           (select max(x.value)
             from farm1 x
             where x.timestamp between 1405987200 and (1405987200 + 86400);

预期结果

 TIMESTAMP        VALUE
----------    ----------

1406056898         8.09

结果正在制作

 TIMESTAMP        VALUE
----------    ----------
1405992437         6.49
1406056898         8.09
1406055371         9.4
1406071600         1.12

此外,还有一种方法可以在不使用unix时间(例如1405992437)的情况下获取今天的时间戳吗?

1 个答案:

答案 0 :(得分:1)

SELECT MAX(value)
FROM farm1
WHERE timestamp BETWEEN 1405987200 AND (1405987200 + 86400)

对于你的第二个问题,你的意思是使用人类可读的比较吗?您可以随时使用WHERE TO_DATE(timestamp,...),但我不确定您的索引在此之后会如何反应。