mysql不适用于IS NOT NULL

问题描述 投票:-1回答: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的某些值(这是一个日期)是null,所以当我运行我的查询时,我不想显示那些为null的日期,但不幸的是,我的表上显示为null的日期。我怎样才能解决这个问题?

这是我的源文件输出文件

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

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

php mysql
1个回答
2
投票

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

之后将startPeriod IS NOT NULL替换为TRIM(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";

这可能对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.