首页 > 解决方案 > SQL Developer 定义日期

问题描述

有没有办法在 SQL Developer 中更改 &_DATE 变量?

每当我运行以下代码时,它只显示今天的日期:DEFINE RUN_DATE = &_DATE

我想找到一种格式化查询的方法,以便找到该月的最后一天。

另外,如果可能的话,将格式更改为显示为 YYMMDD?

标签: dateoracle-sqldeveloper

解决方案


SQL> select '&_DATE' from dual;
old   1: select '&_DATE' from dual
new   1: select '23-JUN-20' from dual

'23-JUN-2
---------
23-JUN-20

SQL> alter session set NLS_DATE_FORMAT='YYYYMMDD';

Session altered.

SQL> select '&_DATE' from dual;
old   1: select '&_DATE' from dual
new   1: select '20200623' from dual

'2020062
--------
20200623

SQL> 

_DATE 被定义为将 SYSDATE 函数的结果存储在数据库中。它的输出基于会话的 NLS_DATE_FORMAT 设置。

或在 SQL Developer 中 -

在此处输入图像描述

但是,您想要一个月的最后一天……我们将为您提供 LAST_DAY() 函数!

select LAST_DAY('&_DATE')
  from DUAL;

返回“20200630”,因为我们提交了返回 2020 年 6 月 23 日的 _DATE,因此该函数返回 2020 年 6 月的最后一天。


推荐阅读