Hri*_*nov 4 postgresql laravel
我正在尝试根据日期/时间选择所有记录。我在 postgreSQL 中有这个时间戳:
13/12/2020 11:00:00
14/12/2020 11:31:00
14/12/2020 12:30:00
14/12/2020 13:00:00
15/12/2020 02:00:00
Run Code Online (Sandbox Code Playgroud)
我在控制器中有一个获取所有记录的代码:
$start_date = date('d/m/Y 00:00:00');
$end_date = date('d/m/Y 23:59:59');
if($request->start_date != '' && $request->end_date != '')
{
// if user fill dates
$dateScope = array($request->start_date, $request->end_date);
} else {
// default load page - today
$dateScope = array($start_date, $end_date);
};
$results = Tablemodel1::whereBetween('table1.recordtime', $dateScope)
->selectRaw('table1.recordtime','table2.info')
->orderBy('recordtime', 'ASC')
->get();
Run Code Online (Sandbox Code Playgroud)
目标是每小时只选择记录,如下所示:
13/12/2020 11:00:00
14/12/2020 13:00:00
15/12/2020 02:00:00
Run Code Online (Sandbox Code Playgroud)
使用时出现错误:
$results = Tablemodel1::whereBetween('table1.recordtime', $dateScope)
->selectRaw('extract(hour from table1.recordtime)','table2.info')
->orderBy('recordtime', 'ASC')
->get();
Run Code Online (Sandbox Code Playgroud)
错误是:
Undefined index: recordtime
Run Code Online (Sandbox Code Playgroud)
LIKE如果不需要其他处理,您可以使用没有分钟或秒的时间戳来获取记录。
$results = Tablemodel1::whereBetween('table1.recordtime', $dateScope)
->where('table1.recordtime','LIKE', '%:00:00%')
->selectRaw('table1.recordtime','table2.info')
->orderBy('recordtime', 'ASC')
->get();
Run Code Online (Sandbox Code Playgroud)
此外,您的查询可能适用于这个轻微的修复 ( AS column_name)
$results = Tablemodel1::whereBetween('table1.recordtime', $dateScope)
->selectRaw('extract(hour from table1.recordtime) AS recordtime','table2.info')
->orderBy('recordtime', 'ASC')
->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |