关于mysql查询的问题

表结构如下所示:

mysql> desc upgrade_upgrade;
Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
summary varchar(225) NO NULL
status int(11) NO NULL
start_time datetime YES NULL
end_time datetime YES NULL
created_date datetime NO NULL
locations varchar(100) NO NULL
sn varchar(225) NO NULL
upgrade_log longtext NO NULL
dest_apk_id int(11) NO MUL NULL

我想查询当前时间在start_time和end_time之间的所有数据,我使用下面的语句:
select * from upgrade_upgrade where start_time <= now() and end_time >= now();
但是start_time和end_time有可能是Null,所以这种情况下上面的语句是不对的。
请问有没有什么解决办法?

阅读 2.7k
3 个回答

null没有值还怎么能输出出来呀? 在插入数据的时候可以给个默认时间,比如start_time= 创建时间,end_time设置为必填项!不知道对你有没有帮助,?

可以加条件: start_time is not null and end_time is not null

我是这样写的,

(NOW() >= start_time 
    OR start_time IS NULL
  ) 
  AND (end_time IS NULL 
    OR NOW() =< end_time) 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题