我正在尝试从过去2小时中选择行.由于某种原因,它不起作用.代码语法看起来没问题,并且在其他表上使用时可以正常工作,但由于某些原因,当在表上使用时Posts
,获取的行超过2小时.
SELECT * FROM Posts WHERE `Date` > SUBDATE( CURRENT_DATE, INTERVAL 2 HOUR)
Run Code Online (Sandbox Code Playgroud)
代码有问题吗?还有其他方法可以写吗?这可能是什么原因?
Ray*_*Ray 19
您可以使用更简单的表示法:
SELECT * FROM Posts WHERE `Date` > NOW() - INTERVAL 2 HOUR
Run Code Online (Sandbox Code Playgroud)
那是因为你正在使用CURRENT_DATE
,你应该使用NOW()
或CURRENT_TIMESTAMP
代替.
问题是使用CURRENT_DATE
,作为日期值,默认时间00:00:00
,所以通过减去2小时你最终获得22:00:00
前一天,而不是最后2小时......
改为:
SELECT * FROM Posts WHERE `Date` > SUBDATE( CURRENT_TIMESTAMP, INTERVAL 2 HOUR)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15692 次 |
最近记录: |