从基准中选择时间为 UNIX_TIMESTAMP(time) laravel 5
Posted
技术标签:
【中文标题】从基准中选择时间为 UNIX_TIMESTAMP(time) laravel 5【英文标题】:Select time from base as 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)
我该如何解决?
【问题讨论】:
【参考方案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;
以上是关于从基准中选择时间为 UNIX_TIMESTAMP(time) laravel 5的主要内容,如果未能解决你的问题,请参考以下文章
golang GoLang数据库SQL:从查询中选择未知数量的列。基准测试结果为db_test.go