[英]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.