我有一个这样创建的表:
CREATE TABLE IF NOT EXISTS MyDataBase.Table (
`date` DATE,
`name` STRING,
`isTarget` BOOLEAN
) USING DELTA LOCATION '/mnt/path/to/folder/'
我需要使用 SQL 在表中手动插入值。我试着这样做:
INSERT INTO CalendrierBancaire.Data VALUES (
('2022-01-01', 'New Year', True)
)
但它在这个错误上失败了:
Error in SQL statement: AnalysisException: cannot resolve 'CAST(`col1` AS DATE)' due to data type mismatch: cannot cast struct<col1:string,col2:string,col3:boolean> to date; line 1 pos 0;
我还尝试将日期字符串替换为:
CAST('2022-01-01' AS DATE)
to_date('2022-01-01', 'yyyy-MM-dd')
但两者都没有工作并返回相同的错误。看起来 SQL 解析器想要将整行转换为日期,这很愚蠢。你知道我该怎么做吗?
谢谢。
PS:在实际使用中,我有将近 30 到 40 行要插入,所以让一个带有 CAST 表达式的变量同时对于所有值都很难实现。