PL/SQL oracle,使用日期和时间的测试窗口
Posted
技术标签:
【中文标题】PL/SQL oracle,使用日期和时间的测试窗口【英文标题】:PL/SQL oracle, test window using date and time 【发布时间】:2012-11-27 10:15:35 【问题描述】:我有一个返回日期的函数(实际上是时间戳,日期+时间)。 在表格中,它看起来像这样,“2010-09-05 17:33:00”。 当我从 sql 脚本中调用我的函数时,
select my_package.my_function('2010-09-05')
from dual.
我会在结果中获得时间。
但如果我在测试窗口中运行相同的程序,我只会收到日期而不是时间。
这怎么可能?
【问题讨论】:
可能只是工具格式化日期的方式。尝试使用明确的日期格式的 to_char。 【参考方案1】:您将看到 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;
【讨论】:
【参考方案2】:测试窗口是什么意思?
如果您的意思是 SQL+,那么将应用一种格式,您可以使用
进行更改alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';
在您的 SQL+ 会话开始时执行此操作。
【讨论】:
【参考方案3】:当我简单地写 ALTER .... 然后我在程序中工作时出错。但是,我在下面添加了脚本,它对我有用。
execute immediate 'ALTER SESSION SET NLS_DATE_FORMAT = ''DD/MM/YYYY HH24:MI:SS''';
【讨论】:
以上是关于PL/SQL oracle,使用日期和时间的测试窗口的主要内容,如果未能解决你的问题,请参考以下文章
Oracle PL/SQL,如何使用简单的替换变量和months_between计算出生日期的年龄
如何使用间隔 1 分钟在两个日期之间将时间序列数据生成到 Oracle PL/SQL 中的表中?
ORACLE PL/SQL - 使用 SYSDATE 检索特定日期的数据时出现检索问题
在 PL/SQL Developer 中运行的日期查询显示时间,但在 Oracle SQL Developer 中不显示