我有这样的php代码:
<?php
session_start();
include("../Php/ConfigBaza.php");
$kid = $_SESSION['KORISNIKID'];
$sql = "SELECT REZERVACIJAID, DATE_FORMAT(DATUM, '%d.%m.%y') AS DATUM,
STATUS, VREDNOST
FROM REZERVACIJE
WHERE KORISNIKID = '$kid'
ORDER BY DATUM DESC";
$result = $mysqli->query($sql);
if($result->num_rows < 1) {
echo("Nemate ni jednu rezervaciju!");
die();
} else {
echo("<style>");
include('../Styles/_Rezervacije.css');
echo("</style>");
while($r = mysqli_fetch_assoc($result)) {
$realizovana = "";
$rid = $r['REZERVACIJAID'];
$h_rid = hash('fnv1a32', $rid);
$datum = $r['DATUM'];
$status = $r['STATUS'];
$v = $r['VREDNOST'];
$v_txt = number_format($v, 2);
if($status == 2) {
$realizovana = "realizovana";
} else if($status == 0) {
$realizovana = "neaktivna";
}
echo("
<div class='rezervacija $realizovana' id='$rid' onclick='IdiNaRezervaciju(this.id)'>
<p style='font-weight: bolder; font-size: large'>$h_rid</p>
<br>
<p style='font-size: large'>$v_txt</p>
<p style='font-weight: bolder'>$datum</p>
</div>
");
}
}
?>
正如您在查询中看到的,我是按日期排序的,但由于某些原因,它在几天内是正常的,而不是几个月。
我得到的结果是:
在mysql数据库中,我的日期列是日期类型
1条答案
按热度按时间jtoj6r0c1#
正如@riggsfully在他的评论中出色地提到的,问题是您正在重新格式化用于排序记录的日期列。
当您重新格式化日期列时,mysql将不再将其作为日期字段读取,而是作为文本读取,
04.08.18
低于31.08.18
这就是为什么你得到你现在得到的订单。解决方案是将日期列重新格式化为另一个名称:
你当然可以改变
SOME_DATE
无论你想要什么。然后在代码中,用$r['SOME_DATE'];
相反。这里有一把小提琴展示了不同之处:http://sqlfiddle.com/#!9/0d2e5f/1号楼