2015-05-13 126 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') 
相关问题