【问题标题】:datediff MySQL between one particular date and a column一个特定日期和一列之间的 datediff MySQL
【发布时间】:2021-12-12 05:39:26
【问题描述】:

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

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

如何计算从 '2021-11-10' 到 xdate 列的特定日期之间的日期差异并以年、月和日表示?

【问题讨论】:

    标签: mysql datediff


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多