-1

所以我有以下查询

   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( 它是一个日期) 的一些值是空的,所以当我运行我的查询时,我不想显示那些为空的日期,但不幸的是,空的日期显示在我的表上。我怎样才能解决这个问题?

这是我源上的输出文件

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

在第一个 tds 之间你可以看到它是空的

4

1 回答 1

2

您确定插入的数据实际上是 NULL,而不仅仅是一个空字符串吗?

之后替换startPeriod IS NOT NULLTRIM(startPeriod) <> ""

或者

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";

这可以帮助你。

于 2013-03-29T08:21:03.620 回答