繁体   English   中英

MySQL日期在月份和年份之间

[英]MySQL date in between month and year

如何查询from_dateto_date之间的日期月份和年份?

我累了:

$posts = my_table::whereYear('from_date', '>=', $year)
    ->whereMonth('from_date', '>=', $month)
    ->whereYear('to_date', '<=', $year)
    ->whereMonth('to_date', '<=', $month)
    ->get();

我要执行的查询:

SELECT * FROM my_table
WHERE (MONTH(from_date)>=2 AND (Year(from_date)>=2019)
  AND (MONTH(to_date)=<4 AND (Year(to_date)=<2019)

我认为这是您可能正在寻找的:

$posts = my_table::whereRaw("(MONTH('from_date') > 2 AND YEAR('from_date') >= 2019)")
    ->whereRaw("(MONTH('to_date') < 4 AND YEAR('to_date') <= 2019)")
    ->get();

这是一个例子

您也可以使用雄辩的方法。

$result = my_table::where(function($query){
       $query->where(DB::raw('MONTH(from_date)'), '>=' , 2)
        ->where(DB::raw('Year(from_date)'), '>=' , 2019);
      })
     ->where(function($query){
       $query->where(DB::raw('MONTH(to_date)'), '<=' , 4)
        ->where(DB::raw('YEAR(to_date)'), '<=' , 2019);
      })
     ->get();

您也可以用这种方式来做。

return Post::whereRaw("STR_TO_DATE('from_date', '%M%Y') > STR_TO_DATE('022019', '%M%Y')")
->whereRaw("STR_TO_DATE('from_date', '%M%Y') < STR_TO_DATE('042019', '%M%Y')")
->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM