看板 PHP 關於我們 聯絡資訊
※ 引述《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 這樣的語法,會不會比較簡單? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.63.179