查询构造器中怎么使用DATE_FORMAT

1. 运行环境

phpstudy

1). 当前使用的 Laravel 版本?

laravel8.0

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.3

3). 当前系统

windows10
//: <> (期待数值 Windows 10 / Ubuntu 20.4 / CentOS 8 )

4). 业务环境

开发环境
//: <> (期待信息 开发环境生产环境)
//: <> (是否使用负载均衡?请提供相关信息)

2. 问题描述?

![Laravel]

Laravel

运行会报错vsprintf(): Too few arguments,在DATE_FORMAT函数中增加%也没用,想请问下怎么解决

3. 您期望得到的结果?

Laravel

4. 您实际得到的结果?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

这是打印出现错误了,DATE_FORMAT中包含%,但没有给出对应的值,导致vsprintf函数报错。 可以通过%%转义来实现%的正常输出

2年前 评论
oceanjiayu (楼主) 2年前
讨论数量: 16

这是打印出现错误了,DATE_FORMAT中包含%,但没有给出对应的值,导致vsprintf函数报错。 可以通过%%转义来实现%的正常输出

2年前 评论
oceanjiayu (楼主) 2年前

在对应的Model文件里定义一下

protected $casts = [
    'trigger_time' => 'datetime:Y-m-d'
];

后面这个字段就不用再多做处理,查询出来的就是已经被转换过的值了

2年前 评论
oceanjiayu (楼主) 2年前
chowjiawei

carbon 创建你的时间 format你要的格式 在查询下

2年前 评论
oceanjiayu (楼主) 2年前

好像和我这一段代码挺像,你看看是不是(ps:好久之前的代码了,写的有点差劲)

Review::where('season',$season)
->select(DB::raw('DATE_FORMAT(created_at,"%Y-%m-%d") as time'))
->groupBy(DB::raw('DATE_FORMAT(created_at,"%Y-%m-%d")'))->get();
2年前 评论
oceanjiayu (楼主) 2年前
我爱大可乐 (作者) 2年前
我爱大可乐 (作者) 2年前
BScantnotCn 2年前

我用laravel8试了试,可以用的

2年前 评论
oceanjiayu (楼主) 2年前
oceanjiayu (楼主) 2年前
oceanjiayu (楼主) 2年前
boolstone 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!