【发布时间】:2013-10-02 17:45:18
【问题描述】:
我有一个查询,我试图根据 Oracle 中两个 unix 时间戳之间的小时数聚合数据。最困难的部分是即使我在查询中没有看到任何错误,我也会因“ORA-00936: missing expression”错误而出错。在这里需要一些专家建议。以下是查询-
查询 -
select DATE(FROM_UNIXTIME(C.DATETIMEORIGINATION)) the_date,
HOUR(FROM_UNIXTIME(C.DATETIMEORIGINATION)) the_hour,
count(c.RECORD_ID) the_count
FROM TABLE_A C
WHERE C.DATETIMEORIGINATION between 1380033019 AND 1379702408
GROUP BY 1,2;
非常感谢任何帮助。谢谢
【问题讨论】:
-
DATE()、HOUR()和FROM_UNIXTIME()不是 built-in Oracle functions。您不能总是直接使用来自另一个 RDBMS 的代码。虽然我猜你可以自己创建它们作为函数。您想要什么输出 - 这将确定最合适的等价物?您也不能在group by clause中使用位置符号。 -
这很有趣。我检查了 Oracle 站点 (docs.oracle.com/cd/E17952_01/refman-5.1-en/…),它具有正在使用的功能及其实现。不知道这里是否遗漏了什么。
-
这是 MySQL 文档,不是 Oracle 数据库。除了一些参考资料(主要是在命令提示符中)之外,这在该页面上并不完全明显。页面底部的home link 使它更清晰一些。您不是第一个因都在 docs.oracle.com 下而感到困惑的人...
-
好的.. 你让我脱裤子了。 :P 我正在尝试根据两个 unix 时间戳之间的小时数来计算记录。感谢您的帮助。!