我想在laravel中检查当前日期是否相同。
$sales = DB::table('c_sales_detail')
->where('c_sales_detail.package_id',"=",'$package->code')
->where(DATE_FORMAT('c_sales_detail.created_at', '%W'), "=", "Wednesday")
->count();
但是得到了以下错误。请帮我解决这个问题。
Error :: date_format()期望参数1为DateTime,给定字符串
答案 0 :(得分:1)
if(is.peek() == '\n')
您是否尝试在此处调用PHP函数->where(DATE_FORMAT('c_sales_detail.created_at', '%W'), "=", "Wednesday")
,或者调用MySQL函数date_format
...?
现在你正在调用PHP函数。如果你想调用MySQL函数,那么它必须是你传递给DATE_FORMAT
的字符串的一部分,而不是围绕的字符串值。 where()
应该是一个列名 - 那么现在,它只是一个字符串值。
我想这就是你真正想要的东西:
c_sales_detail.created_at
修改:根据Joel的评论,将->whereRaw("DATE_FORMAT(c_sales_detail.created_at, '%W') = 'Wednesday'")
替换为->where()
。
答案 1 :(得分:0)
不确定但请尝试此代码, 替换,
->where(DATE_FORMAT('c_sales_detail.created_at', '%W'), "=", "Wednesday")
使用,
->where(DATE_FORMAT(strtotime('c_sales_detail.created_at'), '%W'), "=", "Wednesday")
答案 2 :(得分:0)
您也可以尝试使用此代码 -
$query = DB::table('c_sales_detail');
$query->whereRaw("DATE_FORMAT(created_at,'%W') = 'Tuesday'");
$result = $query->get();