PL/SQL oracle,使用日期和时间的测试窗口

PL/SQL oracle,使用日期和时间的测试窗口,oracle,debugging,plsql,Oracle,Debugging,Plsql,我有一个返回日期的函数(实际的时间戳,日期+时间)。 在表格中,它看起来像这样,“2010-09-05 17:33:00”。 当我从sql脚本调用函数时 select my_package.my_function('2010-09-05') from dual. 我会在结果中得到时间 但是如果我在测试窗口中运行相同的程序,我只会收到日期,而不会收到时间 这怎么可能呢?您看到了NLS\u日期\u格式设置的效果。根据需要设置。例如: alter session set NLS_DATE_FO

我有一个返回日期的函数(实际的时间戳,日期+时间)。 在表格中,它看起来像这样,“2010-09-05 17:33:00”。 当我从sql脚本调用函数时

select my_package.my_function('2010-09-05') 
  from dual.
我会在结果中得到时间

但是如果我在测试窗口中运行相同的程序,我只会收到日期,而不会收到时间


这怎么可能呢?

您看到了NLS\u日期\u格式设置的效果。根据需要设置。例如:

alter session set NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss";
select my_package.my_function('2010-09-05') from dual;
正确查看输出

或对输出进行字符化

select to_char(my_package.my_function('2010-09-05'), 'yyyy-mm-dd hh24:mi:ss') from dual;

您将看到NLS_日期_格式设置的效果。根据需要设置。例如:

alter session set NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss";
select my_package.my_function('2010-09-05') from dual;
正确查看输出

或对输出进行字符化

select to_char(my_package.my_function('2010-09-05'), 'yyyy-mm-dd hh24:mi:ss') from dual;

你说的测试窗口是什么意思

如果您的意思是SQL+,那么将应用一种格式,您可以使用

alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';

在SQL+会话开始时执行此操作。

测试窗口是什么意思

如果您的意思是SQL+,那么将应用一种格式,您可以使用

alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';

在SQL+会话开始时执行此操作。

当我简单地编写ALTER时。。。。然后我得到了错误的工作过程。然而,我在下面添加了脚本,它对我有效

execute immediate 'ALTER SESSION SET NLS_DATE_FORMAT = ''DD/MM/YYYY HH24:MI:SS''';

当我简单地写改变。。。。然后我得到了错误的工作过程。然而,我在下面添加了脚本,它对我有效

execute immediate 'ALTER SESSION SET NLS_DATE_FORMAT = ''DD/MM/YYYY HH24:MI:SS''';

可能只是工具格式化日期的方式。尝试使用显式日期格式显示字符。可能就是工具设置日期格式的方式。尝试使用显式的日期格式保存字符。