我有一个包含'user_id', 'amount', 'today_date'
字段的表。我只想按今天与过去6天之间的日期来汇总所有amount
分组的user_id
。我将所有日期存储在'today_date'
我尝试过这样的事情:
date_default_timezone_set('Asia/kolkata');
$date = date('Y-m-d');
$week = date('Y-m-d', strtotime('-6 days'));
$data['this_week'] = $this->db->select('sum(amount) as total, user_id')->where("today_date BETWEEN $date AND $week")->group_by('user_id')->get('tbl_transcations')->result_array();
由于2天前开始学习,我可能缺少CI语法。 请帮帮我。
答案 0 :(得分:1)
您似乎将日期范围设置为错误的顺序。这个:
SELECT fn_split_str_to_chars(null, '123456', 1);
SELECT * FROM tmp_chars;
应该是:
->where("today_date BETWEEN $date AND $week")
请注意,您需要在文字日期前后加上双引号。
您可以很好地删除变量并直接在数据库中进行计算:
->where("today_date BETWEEN '$week' AND '$date'")
如果您的日期具有时间成分,则使用半开间隔是更好的策略:
->where("today_date BETWEEN current_date - interval 6 day AND current_date")