使用标准的mysql函数有一种方法来编写一个查询,该查询将返回两个日期之间的天数列表.
例如,给定2009-01-01和2009-01-13,它将返回一个包含值的列表:
2009-01-01
2009-01-02
2009-01-03
2009-01-04
2009-01-05
2009-01-06
2009-01-07
2009-01-08
2009-01-09
2009-01-10
2009-01-11
2009-01-12
2009-01-13
Run Code Online (Sandbox Code Playgroud)
编辑:看来我还不清楚.我想生成这个列表.我有值存储在数据库中(按日期时间),但是希望它们在左外连接上聚合到上面的日期列表中(我希望在某些连接的右侧有一段时间为null并且会处理这个).
在我的数据库中,我有两列名为start_dateand end_date,如果今天的日期介于start_date和之间,我希望从我的数据库中获取条目end_date.我当前的查询代码如下,但它没有返回我的期望:
def updateMess
@mess = MessType.find(params[:id_param])
@today = Date.today
@mess_current_price = MessPrice.where('mess_id = ? AND DATE(?) BETWEEN start_date AND end_date', @mess.mess_id, @today)
respond_to do |format|
format.json { render :json => { :_mess => @mess, :_mess_price => @mess_current_price } }
end
end
Run Code Online (Sandbox Code Playgroud)
上面的where命令生成以下查询(如控制台中所示):
MessPrice加载(0.4ms)SELECT
mess_prices.*FROMmess_pricesWHERE(日期('2013-07-01')BETWEEN start_date和end_date)在17ms完成200 OK(浏览次数:3.1ms | ActiveRecord:2.7ms)
编辑:以下是我的javascript的代码,我用它通过使用解析的JSON数据在我的视图中设置字段,但它没有在我的视图中设置字段:
$(document).on('click', ".mess-update-reveal", function(){
$.post('/mess/updateMess',{id_param :$(this).attr('data-mess-id')}, function(data){
var mess = data._mess;
var messPrice = data._mess_price;
console.log(data);
$('#id_param_update_mess').val(mess.mess_id);
$('#mess_name_update').val(mess.mess_name); …Run Code Online (Sandbox Code Playgroud)