我有这样的代码:
hh = History.select("STRFTIME("%Y-%m-%d %H", created_at) AS created_at, ..., count(*) AS count_all")
puts hh[0].created_at
如果未设置config.active_record.default_timezone
,则代码正常工作,否则hh[0].created_at = nil
.
为什么?
我该如何解决它?
尝试在控制台中运行以下命令:
History.select("STRFTIME("%Y-%m-%d %H", created_at) AS created_at, ..., count(*) AS count_all").to_sql
这将显示发送到 Sqlite3 的输出,然后您可以根据它期望的 SQL 项进行检查。在您的情况下,select
对Postgres SQL风格有效,但对Sqlite3无效