codeigniter 对“d-m-Y”格式值位于两个日期之间的行中的列值求和[重复]

goucqfw6  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(41)

此问题在此处已有答案

Date column is varchar how to select data until today from 01-01-2019(2个答案)
SQL Query On Date When Type Is VARCHAR(3个答案)
Search between dates (date as VARCHAR)(7个回答)
May be correct save date as varchar in sql?(1个回答)
I stupidly made a row with dates as VARCHAR, can I still do date based selects on it?(4个答案)
18小时前关闭
我想得到每周总收入,但我得到了null返回值。
这是我的模型方法:

public function getDataPenjualanWeekly() 
{
    $date_start = strtotime('last Sunday'); 
    $week_start = date('d-m-Y', $date_start); // 31-12-2023 (Sunday)
    $date_end = strtotime('next Sunday');
    $week_end = date('d-m-Y', $date_end); // 07-01-2024 (Sunday)

    return $this->db->table('penjualan')
    ->selectSum('total_laba_kotor', 'sumQuantities')
    ->where('tanggal_penjualan >=', $week_start)
    ->where('tanggal_penjualan <', $week_end)
    ->get()
    ->getRow()
    ->sumQuantities;
}

字符串
这是我的table:


的数据
这是我转储数据时的结果:



我的逻辑有问题吗?

2ul0zpep

2ul0zpep1#

您显示的日期比较代码:

->where('tanggal_penjualan >=', $week_start) ...

字符串
仅当tanggal_penjualan是数据库中的日期字段时才有效。您所显示的数据的屏幕截图显示该列具有类似02-01-2024的值。
From the MySQL docs
MySQL以'YYYY-MM-DD'格式检索并显示日期值。
因此,看起来tanggal_penjualan不是日期列,您的代码使用的日期比较将不起作用。

相关问题