我正在尝试使用以下查询将数据从table1
复制到libreoffice基础中的table2
:
INSERT INTO "table1" ("column1", "column2", ...)
SELECT "column3", "column4", ...
FROM "table2";
column4
是VARCHAR
,其值类似于'5/5/2015'
。我的问题是column2
是DATE
类型。那么如何将column4
转换为DATE
才能在column2
中注册?
答案 0 :(得分:1)
是的,您需要使用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关键字
,则只需将它们括起来