簡體   English   中英

一個特定日期和一列之間的 datediff MySQL

[英]datediff MySQL between one particular date and a column

我在 dd-mm-yyyy 中有日期列,如下所示:

| xdate |
----------
| 30-07-2001 |
| 21-09-2003 |
| 16-06-2020 |

如何計算從“2021-11-10”到xdate列的一個特定日期之間的日期差異並以年、月和日表示?

dd-mm-yyyy不是有效的MySQL日期時間格式。 我建議您始終以日期時間類型存儲日期。

對於您的情況,一個簡單的解決方案可能不是大數據性能的最佳解決方案:

SELECT DATEDIFF('2021-11-10',date_format(str_to_date(xdate,'%d-%m-%Y'),'%Y-%m-%d')) AS days
FROM test_tbl;

演示: https : //www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/127

對於 MONTHS 和 YEARS,您可以嘗試:

SELECT TIMESTAMPDIFF(MONTH, date_format(str_to_date(xdate, '%d-%m-%Y'), '%Y-%m-%d'),'2021-11-10' ) AS months
FROM test_tbl;


SELECT TIMESTAMPDIFF(YEAR, date_format(str_to_date(xdate, '%d-%m-%Y'), '%Y-%m-%d'),'2021-11-10' ) AS years
FROM test_tbl;

演示: https : //www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/129

更多關於 DATEDIFF:

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_datediff

如果你想要 MONTH , YEAR ,你可以使用 TIMESTAMPDIFF ... https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_timestampdiff

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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