【发布时间】:2025-12-03 04:35:01
【问题描述】:
我遇到了问题。我有两个 DB2 表,对于这个问题,我们可以称它们为 Table1 和 Table2。 Table1 有一个名为 Birthdate 的列,它的数据类型为 CHAR,读起来像“19781205”。
我需要将 Table1 中的一些信息插入到 Table2 中。 Table2 有一个 DATE_OF_BIRTH 列,它是数据类型 DATE。我需要将 Table1.Birthdate 插入 Table2.DATE_OF_BIRTH。
根据我在网上看到的情况,我尝试了以下方法:
INSERT INTO TABLE2
(SELECT Name, TO_DATE(Birthdate,'yyyy-mm-dd') AS DATE_OF_BIRTH
FROM TABLE1)
并收到此错误:该值与其目标的数据类型不兼容。目标名称为 DATE_OF_BIRTH。
INSERT INTO TABLE2
(SELECT
Name, DATE(Birthdate, 'YYYYMMDD') AS DATE_OF_BIRTH
FROM TABLE1)
并收到此错误:为 DATE 指定的参数数量无效。
INSERT INTO TABLE2
(SELECT
Name, Cast(Birthdate as date) AS DATE_OF_BIRTH
FROM TABLE2)
并收到此错误:日期、时间或时间戳值 *N 无效。
这可能只是我一直在编码和工作太久的情况,以至于我无法理解它。
【问题讨论】:
-
添加破折号。例如“2017-04-29”。
-
不相关,但是:SELECT 周围的括号完全没用