laravel - 一小时间隔 - Laravel

标签 laravel postgresql

我正在尝试根据日期/时间选择所有记录。
我在 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
我在 Controller 中有一个获取所有记录的代码:
    $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();
目标是每小时只选择记录,如下所示:
13/12/2020 11:00:00
14/12/2020 13:00:00
15/12/2020 02:00:00
使用时出现错误:
  $results  = Tablemodel1::whereBetween('table1.recordtime', $dateScope)
    ->selectRaw('extract(hour from table1.recordtime)','table2.info')
    ->orderBy('recordtime', 'ASC')
    ->get();
错误是:
Undefined index: recordtime

最佳答案

您可以使用 LIKE获取时间戳没有分钟或秒的记录,如果不需要其他处理。

$results  = Tablemodel1::whereBetween('table1.recordtime', $dateScope)
    ->where('table1.recordtime','LIKE', '%:00:00%')
    ->selectRaw('table1.recordtime','table2.info')
    ->orderBy('recordtime', 'ASC')
    ->get();
此外,您的查询可能适用于这个轻微的修复( AS column_name )
$results  = Tablemodel1::whereBetween('table1.recordtime', $dateScope)
    ->selectRaw('extract(hour from table1.recordtime) AS recordtime','table2.info')
    ->orderBy('recordtime', 'ASC')
    ->get();

关于laravel - 一小时间隔 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65287666/

相关文章:

SQL - 具有多个 <> 的失败条件

node.js - 实体之间的循环依赖

postgresql - 我该如何解决 «panic : sql: unknown driver "postgres" (forgotten import? )»?

sql - Postgres Serialized 似乎不像描述的那样工作

mysql - Laravel Eloquent - 多个 NOT LIKE 查询?

php - Laravel4 模型主键值在插入后丢失

php - 拉维尔 4.2 : Force URL to be rendered as HTTP or HTTPS

laravel - 在 Laravel 5 中跨子域保持 session

php - SQLSTATE[HY000] [1049] 未知数据库 - 数据库已创建,但未运行

arrays - Postgresql:具有逗号分隔值的行列中的编辑距离