2013-03-29 26 views
-1

所以我有以下查詢MySQL的工作不IS NOT NULL

query = "SELECT date_format(startPeriod,'%a, %M, %d, %Y') as startDate, 
      date_format(startTime,'%I:%i%p') as startTime, 
      date_format(endTime,'%I:%i%p') as endTime, 
      jobLocation,jobId, 
       hoursWorked 
     FROM users,paycheck 
     WHERE users.userId = '" . $_SESSION['userId'] . 
     "' AND userId = empId 
     AND startPeriod IS NOT NULL 
     ORDER BY paycheck.startPeriod DESC"; 

的問題是,一些startPeriod的值(這是一個日期)爲null所以,當我跑我的查詢我不想以顯示那些爲空的日期,但不幸的是,日期是空的顯示在我的表上。我怎樣才能解決這個問題?

這是我的源

<tr><td></td><td>12:00AM</td><td>12:00AM</td><td>none</td><td>none</td><td>0.00</td></tr> 

我的輸出文件的第一TDS之間,你可以看到它的空

+0

您的startPeriod字段是否包含null或'0000-00-00'? –

+0

請張貼您的輸出,以便更清楚。 – Neo

+0

我的輸出是在我的網頁上的一張桌子上(未發佈),桌子上的startDate只是空的,其他值也顯示出來。 – user2189151

回答

2

你確定插入的數據實際上是空的,而不是隻是一個空字符串?

之後更換startPeriod IS NOT NULLTRIM(startPeriod) <> ""

OR

query = "SELECT date_format(startPeriod,'%a, %M, %d, %Y') as startDate, 
      date_format(startTime,'%I:%i%p') as startTime, 
      date_format(endTime,'%I:%i%p') as endTime, 
      jobLocation,jobId, 
       hoursWorked 
     FROM users,paycheck 
     WHERE users.userId = '" . $_SESSION['userId'] . 
     "' AND userId = empId 
     AND (startPeriod != '0000-00-00' OR startPeriod IS NOT NULL) 
     ORDER BY paycheck.startPeriod DESC"; 

這可能幫助你。

+2

感謝它的工作與startPeriod!='0000-00-00'我改變了價值的時間 – user2189151