3
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时间戳的方式。有可能吗?

4

6 回答 6

1

这应该工作

query = "insert into custom_reports(name,description,created_at) values('#{report_name}', '#{report_content}', '#{Time.now}')"
于 2013-09-12T09:38:49.197 回答
0

尝试,改变

date = Date.today

date = Time.now

除了上述之外,我倾向于不使用可能会或可能不会意外成为 a 的变量keyword(尤其是当我不确定时),所以date我不会将变量命名为 ,而是使用d

于 2013-09-12T09:37:12.060 回答
0

为什么要手动编写该 SQL?那是更复杂和不安全的,因为您不会转义查询中的字符串。在另一边ActiveRecord将照顾created_at列。

我希望有一个基本模型:

class CustomReport < ActiveRecord::Base
end

CustomRepor.create!(name: report_name, description: report_content)
于 2013-09-12T10:14:32.580 回答
0
  1. 我必须找出我的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 |
    +---------------------+
    
  2. 然后我必须根据我使用的格式运行原始查询。

    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);
    
于 2017-12-12T01:40:11.897 回答
0

Mysql“日期”类型的列应该使用

Date.now

Mysql“时间”类型的列应该使用

Time.now

Mysql "DateTime" 类型列必须使用

DateTime.now
于 2017-02-12T09:59:02.150 回答
-1

尝试将时间戳更改为日期时间格式:

Time.at(1335437221) 

转换 2012-04-26 12:47:01 +0200

于 2013-09-12T12:42:13.523 回答