我可以更改 Table B 中使用 CREATE TABLE AS SELECT FROM Table A 创建的列的数据类型和最大长度吗?
Can I change the datatype and max length of a column in Table B that I'm creating with a CREATE TABLE AS SELECT FROM Table A?
我想让转换后的日期格式出现在 ResultB Table 中,而不是 CHAR 类型的日期中,我正在寻找一种在 create table 状态中执行此操作的方法1 去。
我已经成功创建了一个新的 Table ResultB,其中包含来自源 Table SourceA 的数据子集。
有一列UPLSTD(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
我猜它应该像插入一样工作 create table name ( col1 varchar, col2 ..) as select col1, to_char(col2)...
CREATE TABLE ResultB (UPURF
VARCHAR(20), UPTEXT
VARCHAR(20)
, UPLSTD VARCHAR(20))AS
(SELECT UPUPRF,
UPTEXT,
TO_CHAR(UPLSTD)
FROM SourceA
WHERE
to_date(SUBSTR(DIGITS(UPLSTD),
27, 6), 'RRMMDD') <
CURRENT_DATE - 10 DAYS)
WITH DATA
您可以使用以下表达式将 CHAR 字段转换为真正的 DATE 格式。
日期(TO_DATE(ACHARDATE, 'YYMMDD'))
希望对您有所帮助!
或者,您可以使用此选项,但我认为它更令人困惑:
DATE('20' || SUBSTR(ACHARDATE,1,2) ||'-' ||
SUBSTR(ACHARDATE,3,2) ||'-' ||
SUBSTR(ACHARDATE,5,2))
我想让转换后的日期格式出现在 ResultB Table 中,而不是 CHAR 类型的日期中,我正在寻找一种在 create table 状态中执行此操作的方法1 去。
我已经成功创建了一个新的 Table ResultB,其中包含来自源 Table SourceA 的数据子集。 有一列UPLSTD(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
我猜它应该像插入一样工作 create table name ( col1 varchar, col2 ..) as select col1, to_char(col2)...
CREATE TABLE ResultB (UPURF
VARCHAR(20), UPTEXT
VARCHAR(20)
, UPLSTD VARCHAR(20))AS
(SELECT UPUPRF,
UPTEXT,
TO_CHAR(UPLSTD)
FROM SourceA
WHERE
to_date(SUBSTR(DIGITS(UPLSTD),
27, 6), 'RRMMDD') <
CURRENT_DATE - 10 DAYS)
WITH DATA
您可以使用以下表达式将 CHAR 字段转换为真正的 DATE 格式。
日期(TO_DATE(ACHARDATE, 'YYMMDD'))
希望对您有所帮助!
或者,您可以使用此选项,但我认为它更令人困惑:
DATE('20' || SUBSTR(ACHARDATE,1,2) ||'-' ||
SUBSTR(ACHARDATE,3,2) ||'-' ||
SUBSTR(ACHARDATE,5,2))