Sql 在oracle中将数字转换为日期类型

Sql 在oracle中将数字转换为日期类型,sql,plsql,oracle11g,Sql,Plsql,Oracle11g,我有19980215数字类型的值。 我想将其转换为日期类型,如(1998/02/15)。 谢谢。您可以使用TO_DATE功能将其转换为日期 select to_date(19980215, 'yyyymmdd') from ... 然后您可以使用TO_CHAR以您选择的格式显示它 select to_char(to_date(19980215, 'yyyymmdd'), 'yyyy/mm/dd') from ... 尝试使用以下函数: select to_char(to_date(

我有19980215数字类型的值。 我想将其转换为日期类型,如(1998/02/15)。
谢谢。

您可以使用
TO_DATE
功能将其转换为日期

select to_date(19980215, 'yyyymmdd')
  from ...
然后您可以使用TO_CHAR以您选择的格式显示它

select to_char(to_date(19980215, 'yyyymmdd'), 'yyyy/mm/dd') 
  from ...
尝试使用以下函数:

select to_char(to_date(19980215,'yyyymmdd'),'yyyy/mm/dd') from dual

我宁愿避免隐式类型转换,而是这样做:
to_date(to_char(19980215),'yyyyymmdd')
。我知道有几种方法会破坏varchar->date之间的隐式类型转换。但是,即使经过一些思考,我也不能想出一个单独的例子来说明它与另一个TO_CHAR有什么不同?我想你的意思是:
TO_CHAR(TO_CHAR(),…
我肯定是指
TO_CHAR(TO_CHAR()),…
,很抱歉没有弄清楚这一点。我的观点是,这样的问题更可能是由数据库新手提出的。现在是他们养成一个完全不使用隐式转换的好习惯的好时机。过去用这种方式编写代码,将来他们将避免许多问题。当然,在有些情况下,这样做并没有什么区别,也不会造成问题两个表达式的工作原理基本相同。