我想从Laravel的数据库中检索今天的数据。
我已经谷歌搜索并应用了几种方法,但没有得到我的答案。
PrescriptionTbl::whereDate('created_at', '=', $today)->get();
其中PrescriptionTbl
是模型,today
是当前日期,例如2019-2-19
。但是得到了NULL数组。
要检查SQL,我使用了toSQL()
而不是get()
...它显示在浏览器中的SQL下方
select * from `prescription_tbls` where date(`created_at`) = ?
我也使用了Carbon
,但也得到了一个空数组
PrescriptionTbl::whereDate('created_at', Carbon::today())->get();
如何解决?有人帮忙吗?
答案 0 :(得分:2)
您可以使用它;
PrescriptionTbl::whereDate('created_at', date('Y-m-d'))->get();
答案 1 :(得分:0)
您可以尝试以下一种方法:
PrescriptionTbl::where('created_at', '<=', date('Y-m-d 00:00:00'))->get();
答案 2 :(得分:0)
created_at是一种日期/时间格式的时间戳,因此,除非您提供整个时间戳,否则等号运算符将不起作用。
您只能使用documentation
中所述的whereDate方法比较日期PrescriptionTbl::whereDate('created_at', $today)->get();
答案 3 :(得分:0)
您可以使用whereBetween
,在其中您可以提供今天的开始日期为2019-01-01 00:00:00
,结束日期为2019-01-01 23:59:59
供参考 How to query between two dates using Laravel and Eloquent ORM?
答案 4 :(得分:0)
您可以通过new DateTime()
类获得它
PrescriptionTbl::whereDate('created_at', '=', (new DateTime)->format('Y-m-d'))->get();
答案 5 :(得分:0)
使用 Carbon (使用Carbon \ Carbon;)简单而美观
PrescriptionTbl::whereDate('created_at', Carbon::today()->toDateString())->get();