如何检查日期是否在将来,对于分开的日期和时间列?
P粉021854777
P粉021854777 2023-07-31 19:18:47
[PHP讨论组]
<p>我有两列用于存储日期:一列是以YYYY-mm-dd格式表示的日期本身,另一列是以time(7)数据类型表示的时间,例如11:15:10.0000000。<br /><br />我该如何检查未来的行?<br /><br />我可以得到第一部分,即日期本身:</p><p><br /></p> <pre class="brush:php;toolbar:false;">MyModel::where('date', '&gt;=', Carbon::today())-&gt;get()</pre> <p>但是当我尝试添加时间时,它不起作用:</p> <pre class="brush:php;toolbar:false;">MyModel::where('date', '&gt;=', Carbon::today())-&gt;where('time', '&gt;', Carbon::now()-&gt;format('H:i'))-&gt;get()</pre> <p>因为它们是分开的,所以即使日期在未来,时间也是分开的,所以可能会出现时间不匹配的情况。所以我需要以某种方式将日期和与之相关的时间合并在一起,而不是分开。</p>
P粉021854777
P粉021854777

全部回复(1)
P粉651109397

尝试将两个列合并为一个条件。

$now = Carbon::now();

MyModel::whereRaw("CONCAT(`date`, ' ', `time`) >= ?", [$now->toDateTimeString()])->get();

对于 SQL Server,请尝试以下操作。

MyModel::whereRaw("CONVERT(datetime, date + ' ' + CONVERT(varchar, time, 121)) >= ?", [$now->toDateTimeString()])->get();

查询转换可能需要更新,请查阅文档以获取更多信息。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号