MySQLdate格式DD / MM / YYYYselect查询?

我有点困惑如何按date格式sorting。

对于格式YYYY-MM-DD您可以这样做: ...ORDER BY date DESC...

您如何以DD/MM/YYYY订购?

这不工作:

 SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14 

您可以使用STR_TO_DATE()将您的string转换为MySQLdate值和ORDER BY结果:

 ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y') 

但是,将列转换为DATE数据types,而不是使用string是明智的。

猜测你可能只想格式化输出date? 那么这就是你以后的样子

 SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate FROM table ORDER BY date DESC LIMIT 0,14 

或者你真的想按年前的月份sorting吗?

 SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date .......... ORDER BY formatted_date DESC 

使用:

 SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y") AS 'NAME' SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y %H:%i:%s") AS 'NAME' 

参考: https : //dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

ORDER BYdatetypes不依赖于date格式,date格式仅用于显示数据库中的相同数据。

对于我的情况,这工作

 str_to_date(date, '%e/%m/%Y' ) 

在使用代码点火器的MySQL中格式化date

  $from=$_POST['from']; $to=$_POST['to']; $table='Your table'; $alias="count(userid)"; $groupby="date_format(yourdate,('%Y-%m'))"; $orderby=array('mostdrill'=>'DESC'); $where="yourdate between '".date('Ym-d',strtotime($from))."' and '".date('Ym-d',strtotime($to))."'"; $userdata=$this->yourmodel->function name($alias,$table,$where,'',$orderby,"",$groupby); 

希望这有助于了解更多点击这里

如果时间很重要,我使用str_to_date(date, '%d/%m/%Y %T' )%Thh:mm:ss格式显示小时。

猜测你可能只想格式化输出date? 那么这就是你以后的样子

 SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate FROM table ORDER BY date DESC LIMIT 0,14 

或者你真的想按年前的月份sorting吗?