用不同的数据类型插入select



我正试图将数据从table1复制到table2在libreoffice基地使用如下查询:

INSERT INTO "table1" ("column1", "column2", ...)
SELECT "column3", "column4", ...
FROM "table2";

column4VARCHAR,其值与'5/5/2015'相似。我的问题是,column2是一个DATE类型。那么我如何将column4转换为DATE以在column2中注册呢?

你需要使用CAST命令。

看起来您正在将字符串"column4"转换为日期而不是列中的数据。试着用括号替换引号,像这样…

INSERT INTO table1 ([column1], [column2], ...)
SELECT [column3], CAST([column4] AS DATE), ...
FROM table2;

或删除所有分隔符,如下所示…

INSERT INTO table1 (column1, column2, ...)
SELECT column3, CAST(column4 AS DATE), ...
FROM table2;

如果列名包含空格/特殊字符或包含SQL关键字

,则只需要将列名括起来

最新更新