2013-03-29 107 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