簡體   English   中英

如何計算與當前日期和另一個日期的差是否等於或減去幾天

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM