2016-12-09 8 views
0

に期限切れの結果を表示しない、私のクエリです:は、ここに私のmysqliのクエリ

SELECT * FROM courses WHERE course_all = '1' AND course_hour = 'inactive' 
AND (cdate > DATE_ADD(CURDATE(), INTERVAL - 1 HOUR) AND course_hour = 'active'); 

このクエリはcourse_hour = 'active'を持っており、1時間で期限切れの結果を除いてすべての結果を表示するようになっています。私が欲しいもの

は私がcourse_all = '1'を持っているすべての結果、course_hour = 'inactive'course_hour='active'を持っていますが、最近作成し、作成してから1時間をバイパスしていない結果を表示します。

+0

を試してみてくださいCDATEは何ですか? – jophab

+0

なぜあなたは-1時間を使用していますか?あなたがDATE_SUB()を使用することができます減算したい場合 – jophab

+0

cdateはタイムスタンプです、はいあなたは正しいdate_subは私がしたものと同じです。 –

答えて

0

すると、次のクエリを変更してみてください:

SELECT * FROM courses 
WHERE course_all = '1' AND 
(course_hour = 'inactive' 
OR (course_hour = 'active' AND cdate > DATE_ADD(CURDATE(), INTERVAL - 1 HOUR))); 
+0

これは問題を解決していない、すべての時間が表示されます。 –

+0

問題は次のようなものです: 'cdate> DATE_ADD(CURDATE()、INTERVAL-1 HOUR)'私はこれだけで期限切れになっていないものすべてをリクエストで表示しようとしましたが、何も表示されませんでした。 –

0

この

​​
+0

NOW()、CURDATE()、curr_timestampはすべて同じものです。 –

+0

CURDATE()は現在の日付を返し、NOW()は完全な日付時刻を返します。 – jophab

+0

はい、試しましたが、うまくいきませんでした。同じことはサーバーの設定(タイムゾーン)...または列の種類に関係していると思います。 –

関連する問題