【问题标题】:Convert date type to number type( Excel ) in oracle sql在oracle sql中将日期类型转换为数字类型(Excel)
【发布时间】:2018-04-27 22:58:24
【问题描述】:

我正在尝试将两个列值连接到一个字符串中。其中一列的数据类型为VARCHAR2(12),另一列的数据类型为DATE。虽然我可以将它们加在一起,但结果如下所示,而预期输出如下所示:

A=XS1297559038
payment_date=24-DEC-15

输入:

select distinct(A), A||payment_date,

输出:

XS129755903824-DEC-15

预期输出:

XS129755903842362

如果我们在 Excel 上执行,我们会得到类似的结果。

提前非常感谢。我正在使用 oracle sql 11.2

【问题讨论】:

  • 362 来自哪里? 12 月 15 日不是一年中的第 362 天。
  • 嘿,2015 年 12 月 24 日
  • 另外 A=XS1297559038
  • 如何将 2015 年 12 月 24 日转换为 362?没有意义。
  • 你如何将24-DEC-15(无论日期是什么意思)转换为42362

标签: sql oracle


【解决方案1】:

试试这个 select to_number(to_char(sysdate, 'J')) from dual;

【讨论】:

    【解决方案2】:

    来自 Microsoft 关于 Microsoft Excel 中 DATEVALUE 函数的文档,

    DATEVALUE

    备注

    Excel 将日期存储为连续的序列号,以便它们可以 用于计算。默认情况下,1900 年 1 月 1 日是序列号 1, 2008 年 1 月 1 日是序列号 39448,因为它是 39,447 天 1900 年 1 月 1 日之后。

    所以,使用上面的逻辑,当我从 1900 年 1 月 1 日减去您的日期并加 2 时,我得到 42362

    select DATE '2015-12-24' - DATE '1900-01-01' + 2  FROM DUAL;
    

    Demo

    这是一个类似的 StackOverflow 帖子:Change Excel date number to Oracle date

    【讨论】:

      【解决方案3】:

      我无法编辑(少于 6 个字符)或评论(声誉较低:p)。我认为有必要审查输出。如果您认为这是正确的,请检查并编辑。
      电流输出:XS129755903842362
      预期输出:XS129755903824362

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-16
        • 2021-12-30
        • 1970-01-01
        • 2021-04-10
        相关资源
        最近更新 更多