В настоящее время я пытаюсь получить ближайшее совпадение двух наборов дат (dmY) с базой данных SQL, а затем поставить сопоставленное имя столбца InterestRate.
У меня есть пример моего текущего кода, это в основном псевдокод и попытка сделать несколько вещей. Если это поможет.
//$XSS_BLOCK2 = "05-05-2016"; $XSS_BLOCK3 = "20-05-2016"; //By the way The '2016-05-20' is user input so it will not be '2016-05-20' all the time, so it could be anything '2014-08-15'. $today = date('dm-Y'); $interest = 0; $securesqlstring = $secureconn->prepare("SELECT * FROM LatePaymentRates"); $securesqlstring->execute(); while($row=$securesqlstring->fetch()) { echo $row['StartDate']; echo $row['EndDate']; echo $row['InterestRate']; $varsin = array($XSS_BLOCK3, $today); $DateRange = new DateTime($varsin); $databasein = array($row['StartDate'], $row['EndDate']); $DateRanges = new DateTime($databasein); if(($DateRange >= $DateRanges) && ($DateRange >= $DateRanges)) { $dayrate = $row['InterestRate'] * $XSS_BLOCK3 / 36500; $start_date = new DateTime($DateRange); $end_date = new DateTime($DateRanges); $dd = date_diff($end_date, $start_date) * $dayrate; $interest += $dayrate; } } $LatePaymentInterest = $interest; if (!$securesqlstring) // If there is an error it will show this message. {exit("Error in the SQL");}
Нужно ли нам это делать? Я чувствую, что мне что-то не хватает …
SELECT * FROM my_table WHERE '2016-05-20' BETWEEN startdate AND enddate;