Codeigniter:按升序排序

时间:2015-02-07 11:46:47

标签: php codeigniter sql-order-by

嗨,这是我订购和获取数据的型号代码:

$this->db->order_by($oBy, "asc");
$query = $this->db->get('books');

一切正常,但在我的数据库中,我将日期存储为字符串,例如01-JAN-2014。

因此,当我订购日期时,它将按日而不是年份订购,我可以知道如何通过按年份排序来解决它,但数据仍将显示为2014年1月1日,而且它也是将按升序显示?谢谢!

错误:enter image description here

2 个答案:

答案 0 :(得分:4)

$this->db->select('str_to_date('.$oBy.', "%d-%b-%Y") day',false);//select your colum as new column name wich is converted as str ot date
//yo can do select more.
$this->db->order_by('day','ASC');
$query = $this->db->get('books');

这将解决您的问题

答案 1 :(得分:0)

我认为$ oBy是你的专栏名称

$this->db->order_by("str_to_date(" . $oBy . ", '%d-%b-%Y')", "asc");

%d =月中的某天,数字(00..31)

%b =缩写的月份名称(Jan..Dec)

%Y =年份,数字,四位数