You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel查询中为start_date增加5小时的实现求助

问题解决:查询时为start_date字段增加5小时

你当前代码的问题在于错误地将PHP的strtotime()函数直接传入了selectRaw(),这会在PHP层面执行函数而非让数据库处理时间计算,无法实现预期效果。以下是正确的实现方式:

针对MySQL数据库的写法

直接使用MySQL原生的DATE_ADD函数在SQL层面完成时间偏移:

$data = Ticket::selectRaw('DATE_ADD(start_date, INTERVAL 5 HOUR) AS adjusted_start_date')
              ->limit($request->limit)
              ->offset($request->offset)
              ->get();

通过AS adjusted_start_date给处理后的字段设置别名,后续可以通过$item->adjusted_start_date获取该值。

针对PostgreSQL数据库的写法

如果使用PostgreSQL,语法略有不同:

$data = Ticket::selectRaw('start_date + INTERVAL \'5 hours\' AS adjusted_start_date')
              ->limit($request->limit)
              ->offset($request->offset)
              ->get();

注意事项

确保start_date字段在数据库中是DATETIME、TIMESTAMP这类标准时间类型,这样数据库才能正确识别并执行时间运算。

内容的提问来源于stack exchange,提问作者MaditionSky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:00:41