ORA 00933 sql 命令未正确结束
Posted
技术标签:
【中文标题】ORA 00933 sql 命令未正确结束【英文标题】:ORA 00933 sql command not properly ended 【发布时间】:2019-02-07 15:28:03 【问题描述】:我写了这段代码
SELECT max(order)
FROM orders_table
GROUP BY UNIX_TIMESTAMP(timestamp) DIV 30 ;
Order 是一个列,我试图从一个名为 orders_table 的表中获取每 30 秒的最大值。我在其他人的程序的答案中找到了最后一行代码。但是,当我尝试运行此代码时出现错误。
提前致谢
【问题讨论】:
Oracle中没有函数unix_timestamp()
。
也许这有助于***.com/questions/12105691/…
【参考方案1】:
您的查询使用 mysql 语法。在 Oracle 服务器中,DIV
和 UNIX_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 )
【讨论】:
以上是关于ORA 00933 sql 命令未正确结束的主要内容,如果未能解决你的问题,请参考以下文章
为啥会出现“ORA-00933:SQL 命令未正确结束”错误(立即执行)?