SQL查询问题并且create_at格式正确

时间:2016-07-13 16:36:25

标签: sql ruby-on-rails

我试图在Rails项目中创建自己的SQL查询,无论我尝试什么,我都会对created_at的格式抱怨。

current_time = Time.current
values = attribute_values.map { |attribute| "(#{current_item.id},#{attribute},#{current_time},#{current_time})" }.join(',')
ActiveRecord::Base.connection.execute("INSERT INTO line_item_attributes (line_item_id, product_attribute_id, created_at, updated_at) VALUES #{values}")

返回错误:

PG::SyntaxError - ERROR:  syntax error at or near "18"

rails logs中的SQL查询如下所示:

INSERT INTO line_item_attributes (line_item_id, product_attribute_id, created_at, updated_at) VALUES (76,12398,2016-07-13 18:35:30 +0200,2016-07-13 18:35:30 +0200),(76,12394,2016-07-13 18:35:30 +0200,2016-07-13 18:35:30 +0200)

如何才能获得正确的格式以保存?

1 个答案:

答案 0 :(得分:0)

我建议您使用TIMESTAMP来清理导入内容。获取Rails为您提供currentTime = Time.now之类的变量,然后使用values = attribute_values.map { |attribute| "(#{current_item.id},#{attribute},TIMESTAMP '#{currentTime}', TIMESTAMP'#{currentTime}')" }.join(',')