【问题标题】:How to extract month from user entered date using pl/sql如何使用 pl/sql 从用户输入的日期中提取月份
【发布时间】:2020-09-01 05:59:28
【问题描述】:

这是我的代码:

DECLARE
    due_date DATE := TO_DATE('&Due_date','DD-Mon-YYYY HH24:MI:SS' );
    mon NUMBER;
BEGIN   
SELECT
  EXTRACT( MONTH FROM TO_DATE('&Due_date',  'DD-Mon-YYYY HH24:MI:SS' ) ) MONTH INTO mon
FROM DUAL;
  END;
  /

但我得到了错误,

ORA-01858:在数字所在的位置发现了一个非数字字符 预期 ORA-06512:在第 2 行 ORA-06512:在“SYS.DBMS_SQL”,第 1721 行

【问题讨论】:

  • mon := EXTRACT( MONTH FROM due_date );
  • 您究竟为替换 &Due_date 提供了什么?
  • 你为什么要调用 '&Due_date' 两次?
  • 这能回答你的问题吗? How to extract month number from date in Oracle
  • 小心&variable 替换,它们经常被误解。它们的主要用途是在 SQL*Plus 和 SQL Developer 中进行交互式 hack 和脚本编写;在其他运行时环境中,这些变量可能根本不会被替换。

标签: oracle plsql


【解决方案1】:

要从日期中提取一个月,您可以使用TO_CHAR(SYSDATE, 'Month');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2020-10-24
    • 2014-05-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多