如何获取PLSQL存储过程中的当前年份

时间:2019-12-04 21:19:49

标签: sql oracle stored-procedures plsql

我正在尝试使用YEAR(GETDATE())获取当前年份:

DECLARE
    currentYear PLS_INTEGER := YEAR(GETDATE());
BEGIN
    WHILE startYear <= currentYear LOOP
        someOperation.......
        .....
        ....

    LOOP END;
END;

执行此命令后,我将得到以下内容为脚本O / P

  

ORA-06550:第15行,第28列:
  PLS-00201:必须声明标识符“ YEAR”
  ORA-06550:第15行,第13列:
  PL / SQL:项目被忽略
  ORA-06550:第21行,第21列:
  PLS-00320:此表达式类型的声明不完整或格式错误
  ORA-06550:第21行,第2列:
  PL / SQL:语句被忽略
  06550。00000-“%s行,%s列:\ n%s”
  原因:通常是PL / SQL编译错误。

我看看是否使用SELECT YEAR(GETDATE)会返回当前年份。

任何建议如何获取当前年份?

2 个答案:

答案 0 :(得分:2)

很多选择。

SQL> select
  2    to_char(sysdate, 'yyyy') year_1,
  3    --
  4    extract (year from sysdate) year_2
  5  from dual;

YEAR     YEAR_2
---- ----------
2019       2019

SQL>

答案 1 :(得分:1)

我认为YEAR是SQL Server函数。您可以这样使用SYSDATE

DECLARE
  currentYear PLS_INTEGER := TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY'));
BEGIN
  dbms_output.put_line(currentYear);
END;