首页 > 解决方案 > 我可以更改使用 CREATE TABLE AS SELECT FROM Table A 创建的表 B 中列的数据类型和最大长度吗?

问题描述

我希望将转换后的日期格式放在 ResultB 表中而不是 CHAR 类型的日期中,并且我正在寻找一种方法来在 1 中的创建表状态中执行此操作。

我已经成功地使用源表 SourceA 中的数据子集创建了一个新表 ResultB。有一列 UPLST(CHAR 类型)包含日期,为了与当前日期进行比较,我使用 to_date 函数转换了 CHAR 类型的日期,这也有效。

CREATE TABLE ResultB AS
            (SELECT UPUPRF,
                    UPTEXT,
                    UPLSTD
                    FROM SourceA
                    WHERE to_date(SUBSTR(DIGITS(UPLSTD), 27, 6), 'RRMMDD') < CURRENT_DATE - 10 DAYS)
            WITH DATA

我希望输出为:

UPUPRF    UPTEXT    UPLSTD (DATE Format)
------   --------   --------------------
ABCD      ABCDEFG   2019-08-21

但实际情况是:

UPUPRF    UPTEXT    UPLSTD (CHAR Format)
------   --------   --------------------
ABCD      ABCDEFG   190821

标签: sqldb2create-table

解决方案


这是一个可用于将 CHAR 字段转换为真正的 DATE 格式的表达式。

日期(TO_DATE(ACHARDATE,'YYMMDD'))

希望有帮助!


推荐阅读