【发布时间】:2014-01-11 22:16:36
【问题描述】:
我有以下 sql 查询(从 article 中挑选:
SELECT
date,
coalesce(count,0) AS count
FROM
generate_series(
'2013-01-01 00:00'::timestamp,
'2013-12-31 00:00'::timestamp,
'1 day') AS date
LEFT OUTER JOIN
(SELECT
date_trunc('day', users.created_at) as day,
count(users.id) as count
FROM users
WHERE
created_at >= '2013-01-01 00:00'
AND created_at < '2013-12-31 00:00'
GROUP BY day) results
ON (date = results.day) ;
我想在 Rails 中使用它,我想让时间显示为 unix 时间戳
以前我使用这种方法导致我的操作系统冻结:
def yearly_chart
start_year = Time.now.beginning_of_year.to_i*1000
end_year = Time.now.to_i*1000
all_tickets = Ticket.all
count_for_year = (start_year..end_year).map do |year|
[ year, all_tickets.select{|t| t.created_at.to_time.to_i*1000 == year }.count ]
end
@yearly_complaints = count_for_year
end
我已经尝试过Find_by_sql,但它无法正常工作和提升:
PG::InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction block
我还在控制台中测试了ActiveRecord::Base.connection.execute,但也无法正常工作
【问题讨论】:
-
我没有投反对票,但这可能是因为您并没有真正提出问题。你想弄清楚你的机器为什么会死机吗?你有什么问题?
-
不,我的问题是:我想在 Rails 中使用上面的 sql 查询,我想让时间显示为 unix 时间戳
-
StackOverflow 是为了解决特定的错误或问题,而不是告诉你如何编码。见meta.stackexchange.com/questions/156810/…
-
我不是在问如何编码,我是在寻求更好的方法,因为我有一个问题,我正在寻找解决方案!这违反stackoverflow规则吗?我在谷歌上尝试和搜索后问
-
您是否在
psql中尝试过您的 SQL 以确保它按照您的预期执行?
标签: sql ruby-on-rails postgresql