我想使用whereBetween来获取日期间隔,created_date它工作正常:$data = Userorder::whereBetween('created_at', [$dateS->format('Y-m-d')." 00:00:00", $dateE->format('Y-m-d')." 23:59:59"])->get();但是我有另一个列名称order_date,其中此列的日期格式为:星期五 Jan,24,2020,所以我想将其转换为Y-m-d格式$dateS = new Carbon($startdate);$dateE = new Carbon($enddate);$data = Userorder::whereBetween('order_date', [$dateS->format('Y-m-d'), $dateE->format('Y-m-d')])->get();型:class Userorder extends Model{ protected $table = "userorders"; protected $fillable = [ 'order_number', 'product_id', 'order_time', 'order_date', 'product_qty', 'product_price', 'product_totalprice', 'totalprice', 'product_instruction', 'product_size', 'storeinfo_id', 'product_serve', 'user_id', 'user_distance', 'user_address', 'user_instruction', 'office_name', 'st_address', 'order_state', 'order_city', 'order_zipcode', 'gratuity', 'suite_floor', 'driver_ask', 'phone_number', 'paid', 'isdelivery', 'deliveredon', 'show', 'confirmed', 'isonline', 'houseaccount' ]; protected $primaryKey = 'id'; public $timestamps = true;
1 回答

守着星空守着你
TA贡献1799条经验 获得超8个赞
为了实现你所追求的目标,你应该能够将Laravel的iravel的whereRaw()方法与MySQL的STR_TO_DATE()函数(mysql日期格式字符串)结合使用:
Userorder::whereRaw('STR_TO_DATE(order_date, "%a %b,%d,%Y") between ? and ?', [$dateS->format('Y-m-d'), $dateE->format('Y-m-d')])->get();
话虽如此,如果可能的话,我建议更新您的表(和相关代码),以便它实际上是一列而不仅仅是一个字符串。order_date
date
- 1 回答
- 0 关注
- 139 浏览
添加回答
举报
0/150
提交
取消