date = Date.today
query = "insert into custom_reports(name,description,created_at) values(#{report_name}, #{report_content}, #{date})"
ActiveRecord::Base.connection.execute(query);
它插入
0000-00-00 00:00:00
所以想到了mysql时间戳的方式。有可能吗?
date = Date.today
query = "insert into custom_reports(name,description,created_at) values(#{report_name}, #{report_content}, #{date})"
ActiveRecord::Base.connection.execute(query);
它插入
0000-00-00 00:00:00
所以想到了mysql时间戳的方式。有可能吗?
这应该工作
query = "insert into custom_reports(name,description,created_at) values('#{report_name}', '#{report_content}', '#{Time.now}')"
尝试,改变
date = Date.today
至
date = Time.now
除了上述之外,我倾向于不使用可能会或可能不会意外成为 a 的变量keyword
(尤其是当我不确定时),所以date
我不会将变量命名为 ,而是使用d
为什么要手动编写该 SQL?那是更复杂和不安全的,因为您不会转义查询中的字符串。在另一边ActiveRecord
将照顾created_at
列。
我希望有一个基本模型:
class CustomReport < ActiveRecord::Base
end
CustomRepor.create!(name: report_name, description: report_content)
我必须找出我的created_at
领域的数据格式是什么
rails db
select created_at from users;
+---------------------+
| created_at |
+---------------------+
| 2017-12-12 00:51:19 |
| 2017-12-12 00:51:20 |
| 2017-12-12 00:51:22 |
| 2017-12-12 00:51:23 |
+---------------------+
然后我必须根据我使用的格式运行原始查询。
date = Time.now.strftime("%Y-%m-%d %H:%M:%S")
query = "insert into custom_reports(name,description,created_at) values(#{report_name}, #{report_content}, #{date})"
ActiveRecord::Base.connection.execute(query);
Mysql“日期”类型的列应该使用
Date.now
Mysql“时间”类型的列应该使用
Time.now
Mysql "DateTime" 类型列必须使用
DateTime.now
尝试将时间戳更改为日期时间格式:
Time.at(1335437221)
转换 2012-04-26 12:47:01 +0200