Rom*_*man 0 mysql select where intervals
我尝试从表中选择那些数据时间为1分钟的行.我试着用以下方式做到这一点:
SELECT datetime FROM my_table
WHERE datetime > date_add( curdate( ) , INTERVAL -1 MINUTE )
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
2011-09-23 02:39:53
2011-09-23 08:10:07
Run Code Online (Sandbox Code Playgroud)
事情显然是错的.有人知道为什么吗?
添加
看起来很奇怪.如果我使用interval -1 hour我得到的结果是4或7个小时(我不应该得到它们),但我会过滤超过14小时的结果.这怎么可能?
从过去的一分钟到将来的一分钟:
SELECT * FROM my_table
WHERE datetime BETWEEN
DATE_ADD(NOW(), INTERVAL -1 MINUTE) AND
DATE_ADD(NOW(), INTERVAL 1 MINUTE)
Run Code Online (Sandbox Code Playgroud)
从现在到未来一分钟:
SELECT * FROM my_table
WHERE datetime BETWEEN
NOW() AND
DATE_ADD(NOW(), INTERVAL 1 MINUTE)
Run Code Online (Sandbox Code Playgroud)
从过去的一分钟到现在:
SELECT * FROM my_table
WHERE datetime BETWEEN
DATE_ADD(NOW(), INTERVAL -1 MINUTE) AND
NOW()
Run Code Online (Sandbox Code Playgroud)