ORA 00933 SQL命令未正确结束

时间:2019-02-07 15:28:03

标签: sql oracle

我写了这段代码

SELECT max(order)
FROM orders_table
GROUP BY UNIX_TIMESTAMP(timestamp) DIV 30 ;

Order是一列,我正尝试从名为orders_table的表中获取每30秒的最大值。我在这里找到别人程序的答案的最后一行代码。但是,尝试运行此代码时出现错误。

预先感谢

1 个答案:

答案 0 :(得分:0)

您的查询使用MySQL语法。在Oracle服务器中,DIVUNIX_TIMESTAMP都不存在。

要进行整数除法,您可以TRUNC除法的结果。

要计算自1970年1月1日以来的秒数,可以使用以下表达式(因为Oracle在减去日期时以天数返回结果):

(date_column - TO_DATE('1970-01-01', 'yyyy-mm-dd')) * 60 *60 *24

您可能想要:

SELECT MAX(o.order)
FROM orders_table o
GROUP BY TRUNC(o.timestamp - TO_DATE('1970-01-01', 'yyyy-mm-dd')) / 30 )