查询构造器中怎么使用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. 您实际得到的结果?#

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

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

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

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

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

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

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

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

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

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

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

好像和我这一段代码挺像,你看看是不是 (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();
3年前 评论
oceanjiayu (楼主) 3年前
我爱大可乐 (作者) 3年前
我爱大可乐 (作者) 3年前
BScantnotCn 3年前

我用 laravel8 试了试,可以用的

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