【发布时间】:2018-12-28 22:10:15
【问题描述】:
我需要更改列数据类型,目前这些列是字符串,但我需要更改为“时间”。
迁移文件:
def change
change_column :enquiries, :start_time, :time
change_column :enquiries, :end_time, :time
end
错误信息:
PG::Error: ERROR: column "start_time" 不能自动转换为 键入不带时区的时间 提示:您可能需要指定“使用 start_time::time without time zone"。
经过一些搜索,我找到了这个解决方案,但它仍然无法正常工作,但是我收到了新的错误消息。
def change
change_column :enquiries, :start_time, 'time USING CAST(start_time AS time)'
change_column :enquiries, :end_time, 'time USING CAST(end_time AS time)'
end
PG::Error: ERROR: 类型时间的无效输入语法:“”
我尝试了 matthewd 解决方案,但仍然无法正常工作。
change_column :enquiries, :start_time, "time USING CAST(NULLIF(start_time, '') AS time)"
PG::Error: ERROR: 类型时间无效的输入语法:“09.00”
任何帮助如何解决它?
【问题讨论】:
标签: ruby-on-rails string postgresql rails-migrations