首页 > 解决方案 > 在 Oracle 中将数字显示为日期

问题描述

我正在尝试在 SQL Developer 中将变量显示为日期(最好是 2017/01/05 之类的)。
如果我查询:

select raw_date from src_table where rownum < 2

我得到一个数字:

61340

从下面的查询中,我发现源日期的 type=2,我看到它不是数字就是浮点数。我假设因为 Len=4 并且没有小数点,所以它是一个数字而不是一个浮点数。

select dump(raw_date) from src_table
where rownum < 2;
Typ=2 Len=4: 195,7,14,41

我已经尝试过投射到日期并使用 to_date 函数,但到目前为止还没有运气。当我尝试:

select to_date(raw_date, 'yyyy/mm/dd') as my_date from src_table

我得到:

ORA-01861: literal does not match format string

我假设我的语法是关闭的。我接近了吗?

标签: sqloracledate

解决方案


您期望得到 61340 的结果是什么?

代表日期的数字可能是儒略日期;在这种情况下:

SQL> select to_date(61340, 'j') from dual;

TO_DATE(61
----------
10.12.4545

SQL>

但是 - 这个值没有多大意义。4545年?嗯?

反之亦然(日期到儒略日期)返回

SQL> select to_char(sysdate, 'j') from dual;

TO_CHAR
-------
2459095

SQL>

如果您知道 61340 代表什么,则更容易提供帮助。


推荐阅读