Ruby on rails 如何解决;PG::CannotImprove:错误:无法将类型bigint强制转换为带有时区的时间戳;Rails中的错误
我想按月显示我的销售指数,我已经尝试使用filter或groupdate gem,但我遇到了这个错误 PG::CannotImprove:错误:无法将类型bigint强制转换为时间戳 时区线1:。。。空)分组依据(日期(“月份”), (“销售”。“id”::timestam。。。 ^:从“销售”中选择“销售”。*其中(“销售”。“id”不为空)组 在时区的(日期(“月”)之前(“销售”,“id”::timestamptz) “亚洲/曼谷”),位于时区“亚洲/曼谷” 我也试图删除时区,但我得到了这样的错误 “时区[]的参数无效::已在处创建” 错误:Ruby on rails 如何解决;PG::CannotImprove:错误:无法将类型bigint强制转换为带有时区的时间戳;Rails中的错误,ruby-on-rails,ruby,postgresql,group-by,ruby-on-rails-5,Ruby On Rails,Ruby,Postgresql,Group By,Ruby On Rails 5,我想按月显示我的销售指数,我已经尝试使用filter或groupdate gem,但我遇到了这个错误 PG::CannotImprove:错误:无法将类型bigint强制转换为时间戳 时区线1:。。。空)分组依据(日期(“月份”), (“销售”。“id”::timestam。。。 ^:从“销售”中选择“销售”。*其中(“销售”。“id”不为空)组 在时区的(日期(“月”)之前(“销售”,“id”::timestamptz) “亚洲/曼谷”),位于时区“亚洲/曼谷” 我也试图删除时区,但我得到了这
源代码:首先,这一行似乎有一个错误:
@sales = Sale.group_by_month(:id, :created_at,format: "%B %Y", time_zone: "Hanoi")
请看以下示例:
第一个参数(id
)过多,您的代码应该如下所示:
@sales = Sale.group_by_month(:created_at, format: "%B %Y", time_zone: "Hanoi")
这就是为什么实际上您会收到错误消息“PG::cannotimprove:error:cannotcast type bigint to timestamp with timezone…”。“sales”。“id”::在生成的SQL查询中,timestamp tz
意味着将id
列(整数)转换为timestamp(timestamp)
我希望这会有帮助
@sales = Sale.group_by_month(:id, :created_at,format: "%B %Y", time_zone: "Hanoi")
User.group_by_week(:created_at, time_zone: "Pacific Time (US & Canada)")
@sales = Sale.group_by_month(:created_at, format: "%B %Y", time_zone: "Hanoi")