2015-05-13 58 views
3

我有使用日期格式的日期範圍的日期數。現在,我想從那天起只有幾年。如何獲取日期範圍內的年數PHP

比方說一個人,給人的日期範圍from: 01-01-2010 to 09-05-2019.

我想有隻years從這個日期,所以我將它們包括在我的SQL查詢。

如果今年有指定的範圍,該查詢僅適用於2015,但是我如何才能在範圍內的所有年份使用它?

下面是該查詢:

$sql = "SELECT 
    MONTH (transaction_date), 
    SUM(case when finance_type != 'Deposit' then amount else 0 end) AS total_amount, 
    SUM(case when finance_type = 'Deposit' then amount else 0 end) AS deposit, 
    SUM(case when finance_type != 'Deposit' AND amount < 0 then amount else 0 end) AS expenses, 
    SUM(case when finance_type != 'Deposit' AND amount > 0 then amount else 0 end) AS earning,   
    SUM(case when finance_type != 'Deposit' AND amount!='' then num_contract else 0 end) AS total_contracts, 
    transaction_date 
     FROM 
     `tbl_finanace` 
      WHERE 
       transaction_date LIKE '%2015%' 
      AND user_id = '15' 
       GROUP BY 
      MONTH (transaction_date) 
       ORDER BY 
      MONTH (transaction_date)"; 
+0

可能重複[得到2年的日期之間?](http://stackoverflow.com/questions/1892912/get-years-between-2-dates) – Naruto

+0

是'transaction_date'字符串/文本/數據庫中的blob類型?如果是這樣,那麼你應該改變它爲整數或某種日期/日期時間類型。 – EJTH

回答

2

可以使用比如果時間字段不到大。的

where transaction_date <= '2010-01-01 00:00:01' and transaction_date >= '2005-12-31 23:59:59' 
1

您可以在日期刪除您LIKE條款,並使用

WHERE YEAR(transaction_date) 
BETWEEN YEAR('01-01-2010') AND YEAR('09-05-2019') 
相關問題