簡體   English   中英

如何僅在laravel whereBetween()上查詢日期部分

[英]How to query the Date part only on laravel whereBetween()

美好的一天,

我對如何在僅評估日期部分而忽略時間部分的laravel的whereBetween函數上執行查詢感到困惑。

$startDate = '2015-04-31';
$endDate = '2015-05-01';
$totalDebit = DB::table('x_general_transactions_details')
            ->whereBetween('date_at', array($startDate,$endDate))
            ->where('account_xid',$account->xid)
            ->sum('debit');

這里的問題是'2015-05-01'中的所有交易都沒有包含在內,因為它的時間不是00:00:00,這就是為什么要在'2015-05-01'上獲得交易,我必須添加一天到我的$endDate變量。

在您的日期中添加時間,這將為您節省一天。

$startDate = '2015-04-31 00:00:00';
$endDate   = '2015-05-01 23:59:59';

嘗試這個 :

$startDate = Carbon::createFromFormat('Y-m-d','2015-04-31');
$endDate = Carbon::createFromFormat('Y-m-d','2015-05-1');
$totalDebit = DB::table('x_general_transactions_details')
            ->whereBetween('date_at', array($startDate,$endDate))
            ->where('account_xid',$account->xid)
            ->sum('debit');

此代碼計算從2015-04-31 00:00:01 am到2015-05-01 00:00:01 am的所有交易記錄,如果您想包括2015-05-01包括的所有交易記錄,請將此代碼用作結束時間

$endDate = Carbon::createFromFormat('Y-m-d H:i:s','2015-05-1' . '23:59:59');

我個人只是將數據庫字段轉換為日期:

$totalDebit = DB::table('x_general_transactions_details')

        ->whereBetween(DB::raw('DATE(date_at)'), array($startDate,$endDate))
                       ^^^^^^^^^^^^^^^^^^^^^^^^

        ->where('account_xid',$account->xid)
        ->sum('debit');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM