2016-05-04 8 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

'NOW()'の代わりに 'UNIX_TIMESTAMP()'を試してみてください。 –

答えて

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

、これであなたのケースで

$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')を試してください。

関連する問題