【问题标题】:How to get current Year in PLSQL stored procedure [duplicate]如何在PLSQL存储过程中获取当前年份[重复]
【发布时间】:2019-12-04 21:19:49
【问题描述】:

我正在尝试使用 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) 是否会返回当前年份。

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

【问题讨论】:

标签: sql oracle stored-procedures plsql


【解决方案1】:

相当多的选择。

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>

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 2011-08-25
      相关资源
      最近更新 更多