-1

すべてのSQLエントリを取得しようとしていますWHERE現在の日付と有効期限の日差が4日未満

私の最初のアプローチは次のとおりです。

$sql_i_requested = "SELECT *, (To_days(date_return)-TO_DAYS(NOW())) as daydif FROM ".$tbl_name." 
WHERE (status!='completed' AND status!='canceled') 
AND owner_id=".$owner_id." 
AND daydif < 4 
ORDER BY date_created DESC";

私の2番目のアプローチは(where句のSQL DateDifferenceによる):

$sql_i_requested = "SELECT * FROM ".$tbl_name." 
WHERE (status!='completed' AND status!='canceled') 
AND owner_id=".$owner_id." 
AND date_return > DateAdd(day, -3, getdate())
ORDER BY date_created DESC";

どちらも機能しないので、「date_return」とnow()4日未満のFROMテーブルWHERE day_differenceを選択するにはどうすればよいですか?

編集:

かわった

AND daydif < 4 

AND (To_days(date_return)-TO_DAYS(NOW())) < 4 

そして今、それは機能しています。とにかく、多分あなたたちは他の解決策を提案することができます。

4

3 に答える 3

0

試す:

SELECT DATEDIFF(date_return, NOW()) AS dayDiff;

having dayDiff < 4
于 2013-02-20T17:35:18.997 に答える
0

これを試して:

select * 
from  table
where DATEDIFF(day, present, future) < 4
于 2013-02-20T17:35:20.370 に答える
0

を使用してDATEDIFF

WHERE DATEDIFF(date_return, now()) < 4
于 2013-02-20T17:36:36.860 に答える