首頁  >  問答  >  主體

如何檢查日期是否在將來,對於分開的日期和時間列?

<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粉021854777P粉021854777467 天前530

全部回覆(1)我來回復

  • P粉651109397

    P粉6511093972023-08-01 16:21:09

    嘗試將兩個列合併為一個條件。

    $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();

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

    #

    回覆
    0
  • 取消回覆