當我做我的數據庫這個請求:紅寶石哈希的日期作爲鍵
users_count = User.select("date_trunc('day', created_at)").group("date_trunc('day', created_at)").count
然後我有日期的散列作爲鍵:
# => {2016-07-29 00:00:00 UTC=>1, 2016-07-06 00:00:00 UTC=>1, 2016-07-07 00:00:00 UTC=>1, 2016-07-13 00:00:00 UTC=>2, 2016-07-04 00:00:00 UTC=>421, 2016-07-09 00:00:00 UTC=>3, 2016-07-08 00:00:00 UTC=>2, 2016-07-22 00:00:00 UTC=>1, 2016-07-19 00:00:00 UTC=>1, 2016-07-21 00:00:00 UTC=>2}
但後來我沒能按日期檢索數據:
date = DateTime.new(2016, 7, 29)
# => Fri, 29 Jul 2016
users_count[date]
# => nil
users_count.keys.first === date
# => true
users_count[users_count.keys.first]
# => 1
如何檢索在單個請求中在特定日期創建的用戶數?爲什麼紅寶石給我一個值爲零的密鑰存在於哈希中?
感謝您的幫助。
紅寶石版本2.2.4,Rails的版本4.2.5.1
什麼是你的問題? – sawa
你100%肯定他們是'日期'嗎?畢竟,你爲'Hash'鍵顯示的'inspect'輸出(''YYYY-MM-DD HH:MM:SS TZ'')與你爲'Date'顯示的'inspect'輸出不匹配'Www,DD Mmm,YYYY''),它清楚地表明'Hash'鍵不是*'日期'。既然它們同時包含'Date'和'Time',它們可能是'DateTime's,而不是'Date's。 –
抱歉沒有讓我的問題更清楚,我補充說。 @JörgW Mittag:我100%確定我給你的紅寶石輸出。 DateTime無法爲我解決它。 –