通过不使用mysql日期函数laravel来命令

时间:2017-06-14 11:19:08

标签: php mysql laravel

我正在处理一个查询,我将在升序订单基础和数据库中显示记录,我的表格字段created_at2016-11-29 12:18:22,我只想检索日期所以我进行了laravel查询,我的laravel查询是

$countOffer = countOffer::select(DB::raw("DATE(created_at) AS created_at"))->where("offerStatus", "!=", 7)->orderBy("created_at", "ASC")->get()->toArray();

现在问题是当我在order by字段添加created_at子句时显示0000-00-00,因此我在MySQL yog上进行查询以进行测试,查询是

SELECT DATE(created_at) AS created_at FROM countOffer WHERE offerStatus != 7 ORDER BY created_at ASC

它也显示相同的值0000-00-00,并在不同的论坛上搜索,但没有得到与我的问题相关的任何解决方案。

任何帮助将不胜感激。 提前致谢

2 个答案:

答案 0 :(得分:1)

您应该像下面的步骤

更新您的查询

第1步:

$countOffer = countOffer::select(DB::raw("DATE(created_at) AS created_at"))
->where("offerStatus", "!=", 7)->orderBy("created_at", "ASC")->get();

第2步:

然后你应该得到你需要的$countOffer数组。

希望这有助于你

答案 1 :(得分:0)

您只能使用created_at

获取get(['created_at'])字段
$countOffers = countOffer:where('offerStatus', '!=', 7)->oldest()->get(['created_at']);

在这种情况下,您在没有原始查询的情况下使用Eloquent,并且使用它来保持您的应用可维护性更好。

此外,由于created_at是Carbon实例,您可以在控制器,视图或应用的任何其他位置执行此操作:

@foreach ($countOffers as $countOffer)
    {{ countOffer->created_at->toDateString() }}
@endforeach

如果您需要导出数据,请使用map()集合方法将Carbon实例转换为您想要的任何格式。