我尝试使用PostgreSQL将TEXT数据类型转换为DATE数据类型值来更新2列但我收到此错误:
这是我的错误:
ERROR: syntax error at or near "CAST"
LINE 2: SET CAST(sle.log_field1 as DATE),
^
********** Error **********
ERROR: syntax error at or near "CAST"
SQL state: 42601
Character: 41
这是我的代码:
UPDATE student_log_entries sle
SET CAST(sle.log_field1 as DATE),
CAST(sle.log_field3 as DATE)
WHERE sle.student_field_id = 400010960;
任何帮助/方向来实现这一点将不胜感激。感谢。
答案 0 :(得分:3)
您需要在UPDATE
声明中包含列名:
UPDATE student_log_entries sle
SET <name of a column> = CAST(sle.log_field1 as DATE),
<name of a column> = CAST(sle.log_field3 as DATE)
WHERE sle.student_field_id = 400010960;
答案 1 :(得分:0)
假设该列尚未更新,则以下查询将通过date
子句将字段类型更改为USING
。
ALTER TABLE student_log_entries
ALTER COLUMN log_field3 TYPE date
USING to_date(log_field3, 'YYYY-MM-DD');
如果您需要,可以在USING
关键字后使用任何自定义函数代替to_date。
如果已经改变了专栏,帕特里克的答案就会做到。