如何在两个日期之间求和

时间:2020-10-08 13:01:36

标签: mysql sql codeigniter datetime where-clause

我有一个包含'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语法。 请帮帮我。

1 个答案:

答案 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")