Ich versuche, das Datum und die Dauer zwischen dem Loan genommen und Paid Datum zu erhalten. Ich habe die Datums- und Uhrzeitfunktionen von PHP verwendet, aber es ist nicht immer genau. Wie kann ich das in MySQL genau machen?Wie konvertiert man die angegebene Anzahl von Tagen in Jahre, Monate und Tage in MySQL?
zwei Daten Nehmen wir an, das Darlehen Aufnahmedatum
2009-05-24
und das Darlehen Rückgabedatum
2012-04-30
Ich schreibe eine MySQL-Abfrage
SELECT DATEDIFF('2012-04-30', '2009-05-24') `total_days`;
Rückkehr 1072 Tage, das ist ungefähr 2 Jahre, 11 Monate, 12 Tage.
Bitte antworten Sie nicht mit PHP-Code, ich versuche es bereits. Hier ist der Code .
Die folgende Funktion verwendet PHP> = 5.3 Funktionen und konvertiert Tage in Jahre, Monate und Tage.
Die folgende Funktion verwendet PHP> = 5.2 Funktionen und konvertiert Tage in Jahre, Monate und Tage.
function date_interval($date1, $date2)
{
$diff = abs(strtotime($date2) - strtotime($date1));
$years = floor($diff/(365 * 60 * 60 * 24));
$months = floor(($diff - $years * 365 * 60 * 60 * 24)/(30 * 60 * 60 * 24));
$days = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24)/(60 * 60 * 24));
return (($years > 0) ? $years . ' Year' . ($years > 1 ? 's' : '') . ', ' : '') . (($months > 0) ? $months . ' Month' . ($months > 1 ? 's' : '') . ', ' : '') . (($days > 0) ? $days . ' Day' . ($days > 1 ? 's' : '') : '');
}
Wie viele Tage in einem Monat da? 28? 29? 30? 31? – liquorvicar
Sie werden wahrscheinlich eine gespeicherte Prozedur oder Funktion benötigen, um das in MySQL zu tun. – liquorvicar