簡體   English   中英

如何在Codeigniter中減去兩個日期(從數據庫的2列中)

[英]How to subtract two dates (from 2 columns in database) in Codeigniter

我必須在模型中進行查詢,以便通過兩個日期之間的這種減法進行排序。 我必須計算ordersheader.transportDateorderitems.forecast_hour列之間的減法。 它們在2個表中ordersheaderorderitems 我在idOrder加入了他們。
首先,我必須為每個idOrder找到max( orderitems.forecast_hour ),然后從orderitems.forecast_hour為每個idOrder減去ordersheader.transportDate這個最大值。 因為它是同一日期,所以應該以小時為單位進行計算。 它應該首先顯示,這些idOrders為orderitems.transportDate此最大orderitems.forecast_hour <0。我嘗試過此操作,但它給了我錯誤:

Call to undefined function DATEDIFF

何去做?

<?php
 function getOrders(){
            $date = new DateTime("now");
            $curr_date = $date->format('Y-m-d');
            $this->db->select('orderitems.eggSize as size');
            $this->db->select('ordersheader.*,customer.name,GROUP_CONCAT(orderitems.itemNumber) as itemNumber');
            $this->db->select('ordersheader.*,customer.name,ordersheader.*,customer.name,GROUP_CONCAT(orderitems.quantity ) as quantity ');
            $this->db->select('ordersheader.*,customer.name,ordersheader.*,customer.name,GROUP_CONCAT(orderitems.unitPrice) as unitPrice');
            $this->db->select('ordersheader.*,customer.name,ordersheader.*,customer.name,GROUP_CONCAT(orderitems.eggSize ) as eggSize');
            $this->db->select('GROUP_CONCAT(orderitems.forecast_hour) as forecast_hour');
            $this->db->from('ordersheader'); 
            $this->db->join('orderitems', 'orderitems.idOrder = ordersheader.idOrder');
            $this->db->join('customer', 'customer.idCustomer = ordersheader.idCustomer');
            $this->db->where('DATE(orderDueDate)', $curr_date);
            $this->db->group_by('orderitems.idOrder');
            $this->db->order_by(DATEDIFF('hour', 'ordersheader.transportDate', 'orderitems.forecast_hour'));
            $query = $this->db->get();
            return $query->result();
        }

請嘗試以下更改。 DATEDIFF必須在您的SELECT行中:

$date = new DateTime("now");
$curr_date = $date->format('Y-m-d');
$this->db->select('orderitems.eggSize as size');
$this->db->select('DATEDIFF("hour", "ordersheader.transportDate", "orderitems.forecast_hour") AS MyDateDiff'); //ADD THIS
$this->db->select('ordersheader.*,customer.name,GROUP_CONCAT(orderitems.itemNumber) as itemNumber');
$this->db->select('ordersheader.*,customer.name,ordersheader.*,customer.name,GROUP_CONCAT(orderitems.quantity ) as quantity ');
$this->db->select('ordersheader.*,customer.name,ordersheader.*,customer.name,GROUP_CONCAT(orderitems.unitPrice) as unitPrice');
$this->db->select('ordersheader.*,customer.name,ordersheader.*,customer.name,GROUP_CONCAT(orderitems.eggSize ) as eggSize');
$this->db->select('GROUP_CONCAT(orderitems.forecast_hour) as forecast_hour');
$this->db->from('ordersheader');
$this->db->join('orderitems', 'orderitems.idOrder = ordersheader.idOrder');
$this->db->join('customer', 'customer.idCustomer = ordersheader.idCustomer');
$this->db->where('DATE(orderDueDate)', $curr_date);
$this->db->group_by('orderitems.idOrder');
$this->db->order_by(MyDateDiff); //EDIT THIS

$query = $this->db->get();
return $query->result();

暫無
暫無

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

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