【问题标题】:Select time from base as UNIX_TIMESTAMP(time) laravel 5从基准中选择时间为 UNIX_TIMESTAMP(time) laravel 5
【发布时间】:2015-06-21 09:40:22
【问题描述】:

我有datetime 类型的基本字段,它是time 字段。我想从基础中获取所有元素并获得额外的timeu 字段 - 它是UNIX_TIMESTAMP(time)。我尝试通过添加 ->select('*','UNIXTIMESTAMP(time) AS timeu') 来做到这一点,但 Laravel 给了我错误。我需要它在->keyBy() 中使用。我有下一个错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'UNIX_TIMESTAMP(time)' in 'field list' (SQL: select *, `UNIX_TIMESTAMP(time)` as `timeu` from `values` where UNIX_TIMESTAMP(time) <= 1429135199 and UNIX_TIMESTAMP(time) >= 1428444000 order by `id` asc)

我该如何解决?

【问题讨论】:

    标签: php database laravel orm laravel-5


    【解决方案1】:

    Laravel 需要知道 UNIX_TIMESTAMP(time) as timeu 是一个 RAW SQL 表达式而不是列名:

    ->select('*', \DB::raw('UNIX_TIMESTAMP(time) AS timeu'))
    

    或者:

    ->selectRaw('*, UNIX_TIMESTAMP(time) AS timeu')
    

    【讨论】:

    • laravel 5.2 中“DB”的完整类名是什么,谢谢
    • @dencey DB外观位于Illuminate\Support\Facades\DB,但你可以使用它的别名并导入use DB;
    猜你喜欢
    • 2011-05-08
    • 2010-10-21
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2018-01-11
    相关资源
    最近更新 更多