※ 引述《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