sat*_*ish 8 mysql sql time datediff date
我需要从表中得到结果,日期应与当前日期相差5.
即.,specific_date
列在我的表中.日期的格式是YYYY-MM-DD
.
我需要查询类似的,
SELECT * FROM `table_name` WHERE DATEDIFF(NOW(), specific_date) < 5
Run Code Online (Sandbox Code Playgroud)
O. *_*nes 11
看起来你正试图这样做:
WHERE specific_date < (NOW() + 5 days)
Run Code Online (Sandbox Code Playgroud)
首先,仔细考虑边界情况.这些边界情况可以在SQL中咬你的脚踝.你真的想要吗?
WHERE specific_date <= (NOW() + 5 days)
Run Code Online (Sandbox Code Playgroud)
您的specific_date
列时间戳是否仅包含天数(即时间等于午夜的日期),还是包含日期和时间?如果你想得到你想要的结果,你需要注意这些细节.
无论如何,试试这个:
WHERE specific_date <= DATE_ADD(NOW(), INTERVAL 5 DAY)
Run Code Online (Sandbox Code Playgroud)
这是进行此类查找的好方法.列值独立于不等式谓词(the <=
)的一侧,因此如果列上有索引,mySQL可以执行索引范围扫描.
MySQL中的日期算法非常灵活.你可以做
NOW() + INTERVAL 10 SECOND
NOW() - INTERVAL 2 MINUTE
NOW() + INTERVAL 4 HOUR
CURDATE() - INTERVAL 1 WEEK /* midnight one week ago */
LAST_DAY(NOW()) + INTERVAL 1 DAY - INTERVAL 1 MONTH /*first day of present month*/
NOW() - INTERVAL 1 QUARTER
CURDATE() - INTERVAL 5 YEAR
Run Code Online (Sandbox Code Playgroud)
等等.
归档时间: |
|
查看次数: |
30070 次 |
最近记录: |