【发布时间】:2020-09-02 06:30:01
【问题描述】:
我正在尝试在 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
我假设我的语法是关闭的。我接近了吗?
【问题讨论】:
-
61340可以代表很多东西(添加更多内容,Excel 日期从 2067 年 —Windows — 或 2071 —Mac —)。你真的需要知道预期的输出,否则你只是在猜测。 -
@ÁlvaroGonzález Excel 16.16.25 在我的 MacBook 上给出 2067-12-09。
-
@sobrio35 您不能使用右键单击或通过查询
user_tab_columns(或all_tab_columns,如果表在另一个模式中)获取列的标准定义吗?不过是number。float只是number的一个子类型,在整个历史或 Oracle 中,没有人使用过。 -
@sobrio35 。 . .您需要询问设计或拥有数据库的人。您所拥有的是一个数字,并且可以通过多种方式将其映射到日期。例如,它可以表示 2040-06-13 或 1940-06-13。
-
@WilliamRobertson 感谢您的反馈(我不是 Mac 用户)。 PC/Mac 1900/1904 问题众所周知,但我承认我不知道具体的系统是否会受到影响,也不知道它会产生什么具体症状。