如何計算mysql查詢中兩個日期(當前日期和存儲在數據庫中的日期)之間的差異,以便在年和月中給出結果。計算MySQL中兩個日期之間的差異以顯示年份和月份
假設有兩個日期 - 2014-01-01
和2015-12-28
那麼我希望結果顯示爲1.11 years
。我怎樣才能做到這一點 ?
現在我正在使用round(datediff(curdate(),e.joined_date)/365
這給了我多年的價值。
請幫忙。
如何計算mysql查詢中兩個日期(當前日期和存儲在數據庫中的日期)之間的差異,以便在年和月中給出結果。計算MySQL中兩個日期之間的差異以顯示年份和月份
假設有兩個日期 - 2014-01-01
和2015-12-28
那麼我希望結果顯示爲1.11 years
。我怎樣才能做到這一點 ?
現在我正在使用round(datediff(curdate(),e.joined_date)/365
這給了我多年的價值。
請幫忙。
使用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
廠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
whay不要使用'timestampdiff'功能? –
雖然1.11年會令人困惑。我想'11'代表11個月,但當我讀到1.11時,我認爲它是1年,大約是每年的十分之一。也許「1年11個月」會更好? – igorshmigor
@AbhikChakraborty - 它能給出類似於我在一個專欄中問1.11年的問題的結果嗎? – Anonymous