2015-08-28 71 views
0

如何計算mysql查詢中兩個日期(當前日期和存儲在數據庫中的日期)之間的差異,以便在年和月中給出結果。計算MySQL中兩個日期之間的差異以顯示年份和月份

假設有兩個日期 - 2014-01-012015-12-28那麼我希望結果顯示爲1.11 years。我怎樣才能做到這一點 ?

現在我正在使用round(datediff(curdate(),e.joined_date)/365這給了我多年的價值。

請幫忙。

+0

whay不要使用'timestampdiff'功能? –

+0

雖然1.11年會令人困惑。我想'11'代表11個月,但當我讀到1.11時,我認爲它是1年,大約是每年的十分之一。也許「1年11個月」會更好? – igorshmigor

+0

@AbhikChakraborty - 它能給出類似於我在一個專欄中問1.11年的問題的結果嗎? – Anonymous

回答

2

使用TIMESTAMPDIFF這樣

SELECT CONCAT(TIMESTAMPDIFF(YEAR, '2014-06-01', '2015-08-01'), '.', TIMESTAMPDIFF(MONTH, '2014-06-01', '2015-08-01')-(TIMESTAMPDIFF(YEAR, '2014-06-01', '2015-08-01') * 12)) AS diff 
-2

廠100%肯定:)祝您好運!

// Start date 
    $startdate = date('Y-m-d'); // current date 
    $startdatesplice = explode("-", $startdate); 
    $startyear = $startdatesplice[0]; 
    $startmonth = $startdatesplice[1]; 
    $startday = $startdatesplice[2]; 

    date_default_timezone_set('Europe/Amsterdam'); 

    // End date 
    $enddate = $row['enddate']; // date from database 
    $enddatesplice = explode("-", $enddate); 
    $endyear = $enddatesplice[0]; 
    $endmonth = $enddatesplice[1]; 
    $endday = $enddatesplice[2]; 

    // change to seconds 
    $timestart = mktime('00', '00', '00', '$startmonth', '$startday', '$startyear'); 
    $timeend = mktime('00', '00', '00', '$endmonth', '$endday', '$eindyear'); 

    // difference in years 
    $difference= $timeend - $timestart; 
    $differenceinyears= floor($difference/(24*60*60)); 
    $diff = $differenceinyears/365; 
    echo $diff.'Years'; 

OOPS

+0

這是如何成爲PHP的問題?也許我錯過了一些東西!但是,歡迎來到The Stack – Drew

+0

@JelleBotman - 這不是一個PHP問題。請在Mysql中回答 – Anonymous

相關問題