我有一个返回日期的函数(实际上是时间戳,date+time)。在表格中看起来是这样的,"2010-09-05 17:33:00“。当我从sql脚本调用我的函数时,
select my_package.my_function('2010-09-05')
from dual.我会在结果中得到时间的。
但是,如果我在测试窗口中运行相同的命令,我将只收到日期,而不是时间。
这怎么可能呢?
发布于 2012-11-27 18:17:26
您正在看到NLS_DATE_FORMAT设置的效果。根据需要进行设置。例如:
alter session set NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss";
select my_package.my_function('2010-09-05') from dual;才能正确地查看输出。
或者对输出执行TO_CHAR命令。
select to_char(my_package.my_function('2010-09-05'), 'yyyy-mm-dd hh24:mi:ss') from dual;发布于 2012-11-27 18:19:19
你说的测试窗口是什么意思?
如果你的意思是SQL+,那么将会有一种应用的格式,你可以使用以下命令来改变它
alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';在SQL+会话开始时执行此操作。
发布于 2017-10-31 16:07:25
当我简单地写ALTER ....然后我在过程中遇到错误。然而,我添加了下面的脚本,它对我有效。
execute immediate 'ALTER SESSION SET NLS_DATE_FORMAT = ''DD/MM/YYYY HH24:MI:SS''';https://stackoverflow.com/questions/13581928
复制相似问题