[英]How to calculate if the difference from current date and another date is equal or minus of a number of days
我使用此查询来计算当前日期减去另一个日期是否为负或等于天数。 不幸的是,该查询仅在天数的计算在同一个月内时才起作用。 让我们以这些数据为例:
current_date是:30/08/2019,另一天是:27/08/2019减去3或等于3,该查询有效,但是如果当前日期为例如01/09/2019,则该查询将不起作用,因为它将返回一个空列表。
这是我使用的查询:
SELECT * FROM condominio WHERE (CURRENT_DATE - condominio.revisione) <= 5
日期以以下格式存储在列中:“ yyyy-mm-dd”,所以我认为这是正确的。 我需要将其他一些数据与current_date一起使用,以使查询返回正确的值?
该查询可以为您提供帮助。
SELECT * FROM condominio AS a WHERE DATEDIFF( CURRENT_DATE, a.revisione ) <= 5
(CURRENT_DATE - condominio.revisione) <= 5
相当于
CURRENT_DATE <= 5 + condominio.revisione
要么
CURRENT_DATE - 5 <= condominio.revisione
可以表示为
SELECT *
FROM condominio
WHERE condominio.revisione >= CURRENT_DATE - INTERVAL 5 DAY
如果您在revisione
上具有索引,这也将比使用DATEDIFF()
更快,因为如果将索引列包装到函数调用中,则无法使用索引。
尝试这个:
SELECT DATEDIFF(DATE_FORMAT(STR_TO_DATE('27/08/2018', '%d/%m/%Y'), '%Y/%m/%d') ,DATE_FORMAT(STR_TO_DATE('30/08/2018', '%d/%m/%Y'), '%Y/%m/%d') ) AS 'Date'
此函数返回日期之间的差异。
好锁!
这是实现我目标的正确代码:
SELECT * FROM condominio WHERE TIMESTAMPDIFF(DAY,NOW(), DATE_ADD(revisione, INTERVAL 1 YEAR)) <= 30;
希望它可以现在或将来对别人有所帮助:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.