Nee*_*eel 3 date dob laravel eloquent laravel-5.1
我date()在 mysql 中有一个列,它具有 mysqlYYYY-MM-DD格式的出生日期:
$table->date('dob')->nullable();
Run Code Online (Sandbox Code Playgroud)
我正在尝试查询此表,以便它列出从今天到接下来 7 天生日的所有用户。我现在有这样的事情:
$date = new Carbon;
$today = $date->format('Y-m-d');
$futureDays = $date->addDays(7)->format('Y-m-d');
$birthdays = SiteUsers::where('dob', '>=', $today)
->where('dob', '<=', $futureDays)
->orderBy('dob', 'ASC')
->get();
Run Code Online (Sandbox Code Playgroud)
上述查询的问题在于,它只列出了具有今年确切日期的 DOB 用户,这是不正确的。我真正想要的是通过仅匹配“日期”和“月份”而忽略“年份”来列出生日的用户,而不管他们出生的年份。
我不知道如何实现这一目标。有人可以帮我吗?
在我发布我的问题后不久,我尝试了一种使用DateOfYear()SQL 函数的原始查询的方法。所以这就是我现在所拥有的,它似乎通过在接下来的 7 天内让用户生日而不管年份如何:
$birthdays = SiteUsers::whereRaw('DAYOFYEAR(curdate()) <= DAYOFYEAR(dob) AND DAYOFYEAR(curdate()) + 7 >= dayofyear(dob)')
->orderByRaw('DAYOFYEAR(dob)')
->get();
Run Code Online (Sandbox Code Playgroud)
请享用
| 归档时间: |
|
| 查看次数: |
3957 次 |
| 最近记录: |