如果我的问题听起来很愚蠢,我很抱歉,但我对编码相对陌生,尤其是在Oracle SQL Developer中,确实需要帮助。我曾经使用mySQL。所以我还是有点困惑。
这是我的代码:
CREATE VIEW ViewC AS
SELECT * FROM watermeter
WHERE deployeddate <= dateadd(month,-6, getdate()) AND
deployeddate > CURRENT_DATE();
代码错误:
Error starting at line : 1 in command -
CREATE VIEW ViewC AS
SELECT * FROM watermeter
WHERE deployeddate <= dateadd(month,-6, getdate()) AND
deployeddate > CURRENT_DATE()
Error report -
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
如果你想知道,问题是:列出未来六个月内应更换的电表(该视图应能够在未来任何时候工作,而无需更改以适应日期(。
Dateadd
不是oracle函数。对于今天的日期,您可以使用sysdate
。
您可以使用以下代码:
CREATE VIEW ViewC AS
SELECT * FROM watermeter
WHERE deployeddate <= add_months(sysdate , -6) AND
deployeddate > sysdate;
在Oracle中没有任何像Dateadd这样的函数。你可以使用
SYSDATE
SYSTIMESTAMP
TO_CHAR
TO_DATE
SELECT SYSTIMESTAMP FROM dual;
输出:2017年8月1日01.33.57.92000000下午-07:00
TO_CHAR(日期"2017-01-01","DL"(
OUTPUT: Sunday, January 01, 2017
TO_DATE( '01 Jan 2017', 'DD MON YYYY' )
OUTPUT: 01-JAN-17