2016-05-16 3 views
0

を無視し、私は私のクエリでは、このビットがない:DATEDIFF()私はDebianの上<code>MYSQL 5.5.47</code>を使用していた時間

AND DATEDIFF(CURRENT_DATE(), shouts_stores.date) <= 7

は - AND DATEDIFF(NOW(), shouts_stores.date) <= 7

問題からそれを変更しましたか? Datediffは、私が読んだすべてのことによると、は時間部分を無視するとされています

私は過去7日間の行を取得する必要がありますが、PHPの "投稿されたX秒/分/時間/日前"機能の時間要素を含むタイムスタンプが必要です。

ただし、行を取得するだけの場合は、最大7日間(または1週間前)からの投稿が必要です。ただし、転記時刻が現在よりも早ければ、8日までノックします。これはいくつかの混乱を引き起こします。誰もこれについて何か考えているのですか?

編集:例 これは、テーブルには次のようになります。

enter image description here

TLのDR。DATEDIFF()は、datetimeの時間部分を無視する必要があります。

+1

、必要に応じて

DATE_ADD(shouts_stores.date,INTERVAL 7 DAY) >= CURRENT_DATE() 

)は(NOWとCURRENT_DATE()を置き換えるあなたは例を追加することはできますか? – Alex

+0

具体的な例が参考になります。ドキュメンテーションは、日付部分だけが考慮されているので、問題がどこにあるのかが分かります。 –

+1

@Pekka面白いところです。私は両方の答えを使用して、両方とも働いた。それから私は自分のコードに戻り、それも働いた。問題は不具合(?)だったようだ。これは間違いなく他のどこにでも見つけられなかった理由を説明します。私はplesk-update後のいくつかの他の問題を持っていました。それが原因だったかもしれません。 – NoobishPro

答えて

1

試してみてください。

... DATEDIFF(CURRENT_DATE(), DATE(shouts_stores.date)) <= 7 
+0

これにはまだ時間がかかります – NoobishPro

+0

SELECT CURRENT_DATE()、DATE(shouts_stores.date)yourtableから試してみてください。印刷される内容を確認してください。 – smozgur

+0

私の悪い、それは働いた。私は端を越えていなかったし、代わりに私のPHPコードがどのようにそれを処理するかを見ていた。両方の答えはそれを修正しましたが、あなたのものが最初でしたので、私はあなたのものを選びます:) – NoobishPro

1

はこれを試してみてください:

+1

私の前のコメントを無視して、間違ってデバッグしました。 - このソリューションは機能します。あなたが最初に答えなかったのでアップアップ。ありがとうございました! – NoobishPro

関連する問題