0

抱歉,如果我的问题听起来很愚蠢,但我对编码相对较新,尤其是在 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:

如果您想知道,问题是:列出在未来六个月内到期更换的仪表(此视图应该能够在未来的任何时间工作,而无需更改以适应日期)。

4

2 回答 2

1

Dateadd不是oracle函数。对于今天的日期,您可以使用sysdate.

您可以使用以下代码:

CREATE VIEW ViewC AS
SELECT * FROM watermeter
WHERE deployeddate <= add_months(sysdate , -6) AND
deployeddate  > sysdate;
于 2020-11-28T07:24:46.967 回答
0

Oracle中没有像Dateadd这样的功能。您可以使用

SYSDATE     
SYSTIMESTAMP
TO_CHAR     
TO_DATE     

SELECT SYSTIMESTAMP FROM dual;      

输出:01-AUG-17 01.33.57.929000000 PM -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
于 2020-11-28T10:51:32.443 回答