暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle sysdate字符串转换为date

askTom 2016-02-24
124

问题描述

嗨,古鲁斯,

请帮助满足以下要求

CREATE TABLE z_test (date_TERVAL VARCHAR2 (1000)) ;



将定义设置为OFF ;

插入到Z_TEST ( date_InterVAL)
值('系统日期') ;

提交;

我尝试了下面的SQ1 :

SELECT to_date ( xx,'mm/dd/yyyy')
自( SELECT date_TERVAL xx自z_test ) ;

我得到的错误是:
ORA-01858 :发现非数字字符,但应为数字




输出:
2/24/2016

专家解答

这将插入字符串“sysdate”,而不是函数sysdate的结果。您需要删除引号。

请注意,您还可以将日期隐式转换为字符串。因此, Oracle存储的价值将取决于NLS设置:

SQL> select value from nls_session_parameters
  2  where  parameter = 'NLS_DATE_FORMAT';

VALUE
------------------------------
DD-MON-RR
SQL>
SQL> insert into z_test ( date_interval )
  2  values ( sysdate ) ;
SQL>
SQL> alter session set nls_date_format = 'mm/dd/yyyy';
SQL>
SQL> insert into z_test ( date_interval )
  2  values ( sysdate ) ;
SQL>
SQL> select * from z_test;

DATE_INTERVAL
--------------------
24-FEB-16
02/24/2016


要避免这种情况,请在插入sysdate之前先将其to_char ()。或者- -甚至更好- -只是把它存储为一个日期!
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论