按日期排序sqlite与普通sql不一样吗?我可以使用php函数进行排序吗?
我正在使用一个sqLite数据库,其中有一个名为“Calendar”的表 此表包含以下列:按日期排序sqlite与普通sql不一样吗?我可以使用php函数进行排序吗?,php,mysql,sqlite,model-view-controller,Php,Mysql,Sqlite,Model View Controller,我正在使用一个sqLite数据库,其中有一个名为“Calendar”的表 此表包含以下列: id -INTEGER titel -VARCHAR beschrijving -VARCHAR datum -DATETIME inhoud -TEXT album -VARCHAR 无论如何:我是这样存储我的日期的:“03-01-2015”,所以是:d-m-Y 然而,当我运行sqlQuery来选择它们时,我不能使用
id -INTEGER
titel -VARCHAR
beschrijving -VARCHAR
datum -DATETIME
inhoud -TEXT
album -VARCHAR
无论如何:我是这样存储我的日期的:“03-01-2015”,所以是:d-m-Y
然而,当我运行sqlQuery来选择它们时,我不能使用orderbydatum。这不是命令。sql函数STR_TO_DATE('datum','%d,%m,%Y')
似乎在sqLite中也不存在,并返回一个错误“没有这样的函数”。(我甚至没有将日期保存为字符串,而是实际的日期时间,所以这不是问题。)
不管怎样,我是这样显示我表格中的数据的:
while ($x = $resultGetAllCalender->fetchObject()){
$html .="
<div class='col-md-4'>
<div class='col-sm-10 kalenderTopic'>
<div class='datum'><strong>Datum: <span>$x->datum</span></div>
<div class='datum'>Activiteit: <span>$x->titel</span></div>
<div class='inhoud'>$x->beschrijving</div>
<div class='readMore'><a href='index.php?page=kalenderDetail&id=$x->id'>Meer informatie</a>
</div>
</div>
您可以使用
substr()
,在SQL查询中创建一个自定义字符串进行排序:
这样做的目的是抓取数据
字段的一部分,并以可排序的方式将其组合在一起:Ymd
实例
看看这把小提琴,看一个活生生的例子:
示例查询
你能不能把你的全部查询也拿出来?我差点就搞定了!我刚发现我真的需要它们在YMD中,以便对它们进行分类,非常感谢!
public function getAllKalender(){
$sql = "SELECT * FROM kalender";
$statement = $this->makeStatement($sql);
return $statement;
}
substr(datum,7)||substr(datum,4,2)||substr(datum,1,2)
SELECT * FROM calender ORDER BY substr(datum,7)||substr(datum,4,2)||substr(datum,1,2) ASC;