我在表格中有两列
现在我想写一个查询,该查询应该返回在Future或Past
中有时间和日期的行我写了这样的东西
select * from events e
where concat(e.event_date,' ',e.event_time) <= date_format(now(),'%m/%d/%Y %g:%i %a')
但它没有用,它只是其中一个你永远不知道它们有什么问题的东西
提前致谢!
答案 0 :(得分:5)
SELECT *
FROM Events
WHERE event_date < CURRENT_DATE()
OR ( event_date = CURRENT_DATE()
AND event_time <= CURRENT_TIME()
)
这样做的好处是可以使用event_date
上可能存在的任何索引。
答案 1 :(得分:1)
select * from events e where TIMESTAMP(e.event_date,e.event_time) <= NOW()
答案 2 :(得分:0)
如果显示event_date
和event_time
的值,则可能的解决方案
选择过去的活动
SELECT *
FROM events
WHERE STR_TO_DATE(CONCAT(event_date, ' ', event_time), '%m/%d/%Y %h:%i %p') < NOW()
选择未来活动
SELECT *
FROM events
WHERE STR_TO_DATE(CONCAT(event_date, ' ', event_time), '%m/%d/%Y %h:%i %p') > NOW()
这是 SQLFiddle 演示