我正在构建一个Sinatra Web应用程序,并且在理解DataMapper查询时遇到问题。从本月查找记录Datamapper与Sinatra
我在我的数据库中有一个字段,我称之为日期,我很想查询这个,只返回当前月份的记录。
我试图这样:
查询= “2012-11”
@trips = Trip.all(:date.like => '%查询%')
这似乎不工作,我希望有人可能会发现我的错误,并给我一些指导!希望有人能帮忙,感谢您花时间阅读。
戴夫
我正在构建一个Sinatra Web应用程序,并且在理解DataMapper查询时遇到问题。从本月查找记录Datamapper与Sinatra
我在我的数据库中有一个字段,我称之为日期,我很想查询这个,只返回当前月份的记录。
我试图这样:
查询= “2012-11”
@trips = Trip.all(:date.like => '%查询%')
这似乎不工作,我希望有人可能会发现我的错误,并给我一些指导!希望有人能帮忙,感谢您花时间阅读。
戴夫
提供一个范围,而不是:
@trips = Trip.all(:date => (query..query))
我也想解决您的日期格式,并提供月,日和年。
你可以试试这个:
require 'date'
date_c = Date.today
next_y, next_m = date_c.month == 12 ?
[date_c.year+1, 1] : [date_c.year, date_c.month+1]
date_a = Date.new(date_c.year, date_c.month)
date_z = Date.new(next_y, next_m)
Trip.all :date => date_a..date_z
这将返回当月项
感谢您花时间回复!有关如何根据当前日期自动计算这些字段的任何提示? – calabi
查看更新的答案 – 2012-11-30 11:22:39
这是否会带回从特定月份的所有记录?我希望我可以像2012-11- *一样使用某种通配符来返回所有条目。我不确定如何自动查找给定月份的开始日期和结束日期,所以我希望能够使用通配符来解决它。 – calabi
您需要日期查询的日期范围。如果需要,请参阅http://stackoverflow.com/questions/9862123/how-to-find-records-by-month-datamapper以了解如何计算日期。 – jboursiquot
谢谢兄弟,真的很有帮助! – calabi