MYSQL сортировка по дате с максимальной датой - PullRequest
1 голос
/ 17 декабря 2011

Хорошо, я работаю с WordPress и пытаюсь отсортировать некоторые сообщения по настраиваемому полю даты, который содержит дату.Ну, я могу отсортировать результаты по дате, но я хочу показать только результаты, которые имеют дату до сегодняшнего дня.Я не хочу получать результаты от поста с будущей датой.

Это код, который я использую:

$querystr = "
            SELECT wposts.*
            FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
            WHERE wposts.ID = wpostmeta.post_id
            AND wpostmeta.meta_key = 'date'
            AND wposts.post_status = 'publish'
            AND wposts.post_type = games'
            ORDER BY STR_TO_DATE(wpostmeta.meta_value, '%m/%d/%Y') DESC
            ";

        $pageposts = $wpdb->get_results($querystr, OBJECT);

Ответы [ 4 ]

1 голос
/ 17 декабря 2011

Добавьте это к предложению where:

AND STR_TO_DATE(wpostmeta.meta_value, '%m/%d/%Y') <= DATE(NOW())
1 голос
/ 17 декабря 2011

Просто добавьте его к предложению where:

SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
  AND wpostmeta.meta_key = 'date'
  AND wposts.post_status = 'publish'
  AND wposts.post_type = 'games'
  AND STR_TO_DATE(wpostmeta.meta_value, '%m/%d/%Y') < NOW()
ORDER BY STR_TO_DATE(wpostmeta.meta_value, '%m/%d/%Y') ASC
0 голосов
/ 17 декабря 2011

Не видя ваш ряд данных, я бы подумал, что что-то вроде этого поможет:

$today = "12/16/2011";

$querystr = "SELECT wposts.*
            FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
            WHERE wposts.ID = wpostmeta.post_id
            AND wpostmeta.meta_key = 'date'
            AND wposts.post_status = 'publish'
            AND wposts.post_type = 'games'
            STR_TO_DATE(wpostmeta.meta_value, '%m/%d/%Y') <= $today;
            ORDER BY STR_TO_DATE(wpostmeta.meta_value, '%m/%d/%Y') ASC";

Где вы генерируете сегодняшнюю дату в PHP в том же формате, что и% m /% d /% Y

0 голосов
/ 17 декабря 2011
WHERE STR_TO_DATE >= [start DATE] AND STR_TO_DATE <= [END DATE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...