Re: [請益] PHP日期查詢

看板PHP作者 (roger70349)時間17年前 (2008/12/24 19:18), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《s5846125 (陸奧鬼一)》之銘言: : ※ 引述《roger70349 (roger70349)》之銘言: : : 請問各位大大,當sql查詢日期時,是不是使用DATEDIFF這個函數,我把部份的程式貼出來 : : 請各位幫我看看,為何日期無法查詢,謝謝。 : : $ListQuery="SELECT * FROM info WHERE 1=1"; : : if($D1 !=""){ : : $Condition =$Condition." AND Status ='$D1'"; : : } : : if($searchNO !=""){ : : $Condition =$Condition." AND PersonalNO ='$searchNO'"; : : } : : if($StartDate !=""){ : : $Condition =$Condition." AND DATEDIFF(".$StartDate.",CreateDate)>=0"; : : } : : if($EndDate !=""){ : : $Condition =$Condition." AND DATEDIFF(".$EndDate.",CreateDate)<=0"; : : } : : $ListQuery=$ListQuery.$Condition." ORDER BY CreateDate DESC"; : : 是要查詢 StartDate 跟EndDate這兩個欄位,謝謝。 : 如果是用 mysql,是有 datediff() 可以用, : mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30'); : -> 1 : mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31'); : -> -31 : 1.你有列印 $ListQuery 出來看過,確定 sql 語法是正確的嗎? : 2.if ($StartDate){} 跟 if ($EndDate){} 那裡的邏輯好像有問題。 : 如果 $StartDate = 12/10 : $EndDAte = 12/20 : Create 要比 $StartDate 小,又要比 $EndDate 大? : 3.如果用 $StartDate >= CreateDate 這樣的語法,會不會比較簡單? 那是不是就變成 if($StartDate !=""){ : : $Condition =$Condition." AND DATEDIFF(".$StartDate.",CreateDate) >=CreateDate } if($EndDate !=""){ : : $Condition =$Condition." AND DATEDIFF(".$EndDate.",CreateDate) <=CreateDate } 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.144.98

12/25 11:53, , 1F
如果直接用$StartDate跟CreateDate作比較,就不需要用
12/25 11:53, 1F

12/25 11:54, , 2F
到datediff()。
12/25 11:54, 2F
文章代碼(AID): #19KXfplj (PHP)
討論串 (同標題文章)
文章代碼(AID): #19KXfplj (PHP)