質問: Australia/Sydney はTokyoにすべきなのかと思いますが、サンプルコードと同じくAustralia/Sydneyにしました。 ``` Post.group("date_part('hour', timezone('Australia/Sydney', posts.created_at))").count (0.7ms) SELECT COUNT(*) AS count_all, date_part('hour', timezone('Australia/Sydney', posts.created_at)) AS date_part_hour_timezone_australia_sydney_posts_created_at FROM `posts` GROUP BY date_part('hour', timezone('Australia/Sydney', posts.created_at)) Mysql2::Error: FUNCTION hogehoge_development.date_part does not exist: SELECT COUNT(*) AS count_all, date_part('hour', timezone('Australia/Sydney', posts.created_at)) AS date_part_hour_timezone_australia_sydney_posts_created_at FROM `posts` GROUP BY date_part('hour', timezone('Australia/Sydney', posts.created_at)) ActiveRecord::StatementInvalid: Mysql2::Error: FUNCTION hogehoge_development.date_part does not exist: SELECT COUNT(*) AS count_all, date_part('hour', timezone('Australia/Sydney', posts.created_at)) AS date_part_hour_timezone_australia_sydney_posts_created_at FROM `posts` GROUP BY date_part('hour', timezone('Australia/Sydney', posts.created_at)) ``` このエラー内容がよくわかりませんでした。 Mysql2::Error: FUNCTION hogehoge_development.date_part does not exist サンプルコードに添って実装したつもりだったんですが・・・。
回答: MySQLにはdate_partなんて便利な関数はないです。 参考資料とされているhttp://www.workabroad.jp/posts/2184ではPostgreSQLです。 データベースをPostgreSQLに変えるか他のやり方を考えないとダメですね。