2016-05-04 3 views
0

В базе данных столбца типа данных Item_Expired = метка времениMysql выбрать Отметка сравнить

Вернуться результат 2

$querySelectItemsEnd = "SELECT * FROM auction_items WHERE Item_Expired <= NOW() AND Item_Status = 'close' "; 
$stmtSelctItemsEnd = $conn->prepare($querySelectItemsEnd); 
$stmtSelctItemsEnd->execute(); 
$rowCountSelectItemsEnd = $stmtSelctItemsEnd->rowCount(); 

Вернуться результат 7

$querySelectItemsEnd = "SELECT * FROM auction_items WHERE Item_Status = 'close' "; 
    $stmtSelctItemsEnd = $conn->prepare($querySelectItemsEnd); 
    $stmtSelctItemsEnd->execute(); 
    $rowCountSelectItemsEnd = $stmtSelctItemsEnd->rowCount(); 

Вопрос: оба кода работы отлично, но только результат возврата отличается. Но правильный результат - 7, потому что внутри моей базы данных осталось 7 элементов. Таким образом, в коде 1 используется Item_Expired < = NOW(), но только верните мне 2 результат, это неправильно для использования этого ?? потому что я хочу проверить, если Item_Expired меньше текущего времени, а затем отобразить его. Так как я могу сделать это правильно?

+0

Какие даты для этого 7 результатов? – Armen

+0

Попробуйте использовать 'UNIX_TIMESTAMP()' вместо 'NOW()'. –

ответ

1

Предполагая, что поле является полем времени. Попробуйте следующее:

$querySelectItemsEnd = "SELECT *, DATE_FORMAT(Item_Expired, '%Y-%m-%d %H:%i:%s') AS expired FROM auction_items 
         WHERE expired <= NOW() AND 
           Item_Status = 'close'"; 
2

Try с этим,

$querySelectItemsEnd = "SELECT * FROM auction_items 
         WHERE Item_Expired <='".date('Y-m-d H:i:s')."' AND 
           Item_Status = 'close' "; 
+0

Сказали бы это с небольшим изменением: (добавили ответ, поскольку я не могу добавить код в комментарий) – adamst85

1

В вашем случае это может быть, что значение Item_Expired в формате ('d-m-y') и now() функция возвращает в ('d-m-y h:i:s'). поэтому попробуйте date('d-m-y').

Смежные вопросы