如何在 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:%s">
原因: 通常是PL/SQL编译错误。

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

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

很多选项。

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>

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

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

最新更新