在oracle sql

时间:2018-04-27 13:55:10

标签: sql oracle

我试图将两个列值连接成一个字符串。其中一列的数据类型为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

3 个答案:

答案 0 :(得分:2)

试试这个 从双重选择to_number(to_char(sysdate,' J'));

答案 1 :(得分:0)

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

答案 2 :(得分:0)

来自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