首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅从Mysql Database Timestamp Laravel中选择当前周的记录

仅从Mysql Database Timestamp Laravel中选择当前周的记录
EN

Stack Overflow用户
提问于 2014-11-30 09:54:53
回答 5查看 8.2K关注 0票数 4

我只想获取本周周一到周五的记录,但我很难思考和研究如何做到这一点,我在互联网上找到了一些方法,但对于像我这样的新手来说很难理解,所以这是我的代码:

代码语言:javascript
运行
复制
         $myquery=DB::table('attendances')
        ->leftJoin('employees', 'attendances.user_id', '=', 'employees.id')
        ->where('user_id', '=', $employee->id)

        //I want to do something like this one
         ->WHERE WEEK(`date`) = WEEK(NOW()  

        ->orderBy('attendances.date','asc')->get();

我实现了一些这样的答案

代码语言:javascript
运行
复制
         $myquery=DB::table('attendances')
        ->leftJoin('employees', 'attendances.user_id', '=', 'employees.id')
        ->where("WEEKOFYEAR(`date`)", "=", "WEEKOFYEAR(NOW())")
        ->where('user_id', '=', $employee->id)
        ->orderBy('attendances.logon','asc')->get();
EN

回答 5

Stack Overflow用户

发布于 2014-11-30 11:26:23

您可以对两个Carbon date实例使用whereBetween

代码语言:javascript
运行
复制
->whereBetween('date', [
    Carbon\Carbon::parse('last monday')->startOfDay(),
    Carbon\Carbon::parse('next friday')->endOfDay(),
])

如果您想要查找当月的所有记录,请使用以下命令:

代码语言:javascript
运行
复制
->whereBetween('date', [
    Carbon\Carbon::now()->startOfMonth(),
    Carbon\Carbon::now()->endOfMonth(),
])
票数 7
EN

Stack Overflow用户

发布于 2014-11-30 10:08:22

您将希望使用WEEKOFYEAR()而不只是WEEK,后者将获取一年中的当前周索引。因此,同一周中的两个日期将返回相同的WEEKOFYEAR。在普通SQL中,它将如下所示:

代码语言:javascript
运行
复制
... WHERE WEEKOFYEAR(`date`) = WEEKOFYEAR(NOW())

在laravel:

代码语言:javascript
运行
复制
->where("WEEKOFYEAR(`date`)", "=", "WEEKOFYEAR(NOW())")
票数 1
EN

Stack Overflow用户

发布于 2014-11-30 10:10:45

我会尝试像这样的东西

->where('WEEK(FROM_UNIXTIME(`date`))', '=', 'WEEK(NOW())') ->where('DAYOFWEEK(FROM_UNIXTIME(`date`))', '>=', 2) ->where('DAYOFWEEK(FROM_UNIXTIME(`date`))', '<=', 6)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27209202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档