如果MYSQL

时间:2016-04-24 17:46:07

标签: php mysql twitter-oauth

您好我正在尝试选择帖子,其中发布日期少于当前日期,并且发布时间少于当前时间 不幸的是我把发布日期和发布时间放在单独的列上, 每当我尝试获得当天的帖子并且通过时间

SELECT date_published,`twitter_post`,`twitter_pubstatus`,`time_published`
FROM `topics` WHERE date_published <= CURDATE() AND time_published < CURTIME()

这当然给了我错误的结果,因为MYSQL过滤帖子time_published小于当前小时。 总之,我可以申请条件来选择当前日期发布的帖子,它比当前时间早,并选择其他比当前日期更早的帖子, 我尝试使用AS语句来过滤第一个结果(帖子比今天更早),然后将其加入另一个结果(帖子今天过时并且时间过去了)。 这是我的topics结构

twitter_post     user_id       date_published time_published
------------|-----------------|--------------|----------------
some post   |    6507763398   |  2016-04-22  |  22:00:21
other post  |    6507763398   |  2016-04-24  |  02:10:21
future post |    6507763398   |  2016-04-24  |  23:34:21

1 个答案:

答案 0 :(得分:2)

使用

WHERE timestamp(date_published, time_published) <= NOW()

简短且可读但无法使用索引。为了更快地使用

WHERE date_published < CURDATE()
  OR (date_published = CURDATE() AND time_published <= CURTIME())