MySQL формат даты DD/MM/YYYY выбор запроса?

Я немного смущен тем, как упорядочивать по форматам даты.

Для формата YYYY-MM-DD вы сделаете следующее: ...ORDER BY date DESC...

Как вы заказываете DD/MM/YYYY?

Это не работает:

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

Ответ 1

Вы можете использовать STR_TO_DATE(), чтобы преобразовать ваши строки в значения даты MySQL и ORDER BY результат:

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

Однако было бы разумно преобразовать столбец в тип данных DATE вместо использования строк.

Ответ 2

Предполагаю, что вы, вероятно, просто хотите отформатировать дату выхода? то это то, что вы после

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

Или вы действительно хотите сортировать по дням до месяца до года?

Ответ 3

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

Ответ 5

ORDER BY тип даты не зависит от формата даты, формат даты предназначен только для отображения, в базе данных они представляют собой одни и те же данные.

Ответ 6

для моего случая это работало

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

Ответ 7

Если час важен, я использовал str_to_date(date, '%d/%m/%Y %T' ), %T показывает час в формате hh:mm:ss.

Ответ 8

Дата форматирования в mysql с использованием воспламенителя кода

        $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('Y-m-d',strtotime($from))."' and '".date('Y-m-d',strtotime($to))."'";
        $userdata=$this->yourmodel->function name($alias,$table,$where,'',$orderby,"",$groupby);

Надеюсь, что это полезно чтобы узнать больше нажмите здесь

Ответ 9

Предполагаю, что вы, вероятно, просто хотите отформатировать дату выхода? то это то, что вы после

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

Или вы действительно хотите сортировать по дням до месяца до года?

Ответ 10

SELECT DATE_FORMAT(COLUMN_NAME, "%d/%m/%Y %h:%i %p");

Например,

SELECT DATE_FORMAT("2019-05-10 19:30:10", "%d/%m/%Y %h:%i %p");

OUTPUT is 10/05/2019 07:30 PM