【问题标题】:Function Next_Day in pl/sqlpl/sql 中的 Next_Day 函数
【发布时间】:2021-12-29 07:00:21
【问题描述】:

功能不工作。怎么了?我使用数据库 18c xe。

【问题讨论】:

  • 请不要提供图片/链接。在此处向我们展示您的代码,并告诉我们“不工作”是什么意思。

标签: sql oracle function date plsql


【解决方案1】:

它有效,但您应该使用您的数据库使用的语言。我的会说克罗地亚语。

(只需设置日期格式;您不必这样做):

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD.MM.YYYY';

Session altered.

您的查询在我的数据库中也不起作用:

SQL> select next_day(sysdate, 'MONDAY') from dual;
select next_day(sysdate, 'MONDAY') from dual
                         *
ERROR at line 1:
ORA-01846: not a valid day of the week

但是,如果我在星期一使用克罗地亚名称,那么它可以工作:

SQL> select next_day(sysdate, 'PONEDJELJAK') from dual;

NEXT_DAY(S
----------
03.01.2022

或者,改变会话 - 那么第一个查询也可以:

SQL> ALTER SESSION SET NLS_DATE_LANGUAGE = 'ENGLISH';

Session altered.

SQL> select next_day(sysdate, 'MONDAY') from dual;

NEXT_DAY(S
----------
03.01.2022

SQL>

你来自……波兰?按照我的建议尝试使用“poniedziałek”。

【讨论】:

    【解决方案2】:

    select next_day(sysdate, 'mon') from dual

    你可以试试这个吗?

    根据您的语言设置 nls_date_language 并尝试

    更改会话集 NLS_DATE_LANGUAGE = "ENGLISH";

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      相关资源
      最近更新 更多