簡體   English   中英

Rails 查詢變為空,但如果在 sql 控制台中搜索,相同的查詢會檢索記錄

[英]Rails query turns up empty, but same query retrieves records if serched in sql console

在創建一個范圍以返回所有用戶的生日以及其他一些條件后,我遇到了一個問題。 該信息應該呈現給用戶儀表板。

如果我刷新頁面,找到 0 條記錄。 如果我在 Rails 開發環境控制台中運行范圍,它也會返回 0 條記錄。 但是,如果我在活動記錄器打開時從控制台復制查詢,並將其直接放入我的 SQL 客戶端,它會返回正確的記錄。 此范圍也與其他一些范圍鏈接在一起,但如果我要從查詢鏈中刪除此范圍,則查詢有效,它只是不會像我希望此范圍那樣過濾出生日期范圍。

SQL 客戶端位於同一數據庫上。

范圍:

where(
  "(date_of_birth <= ?) OR DATE_ADD(date_of_birth, INTERVAL ? YEAR) BETWEEN ? AND ?", 
  min_age.years.ago.to_date, 
  min_age, 
  beginning_of_month, 
  end_of_month
)

查詢:

SELECT `drivers`.* FROM `drivers` WHERE ( (date_of_birth <=
'1990-02-05') OR DATE_ADD(date_of_birth, INTERVAL 23 YEAR) BETWEEN
'2013-04-01' AND '2013-04-30') AND (drivers.id NOT IN (SELECT
driver_id from follow_ups where team_id = 2)) AND
(average_miles_per_day >= 0.35) AND (travel_time < 2000) AND
(travel_time + (average_miles_per_day * 84) >= 2000)

任何時候 Rails 嘗試執行此查詢都不起作用。 在 SQL 客戶端中執行此查詢時,它就像一個魅力。

也許...字符串到日期的轉換有問題。 嘗試使用 STR_TO_DATE() 函數在您的模型中進行轉換。 請為每個日期做...讓我知道它有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM