如何檢查日期是否在將來,對於分開的日期和時間列?
P粉021854777
P粉021854777 2023-07-31 19:18:47
0
1
565
<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', '>=', Carbon::today())->get()</pre> <p>但是當我嘗試添加時間時,它不起作用:</p> <pre class="brush:php;toolbar:false;">MyModel::where('date', '>=', Carbon::today())->where('time', '> ;', Carbon::now()->format('H:i'))->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();

查詢轉換可能需要更新,請查閱文件以取得更多資訊。

#
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板