首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个特定日期和一个列之间的datediff MySQL

一个特定日期和一个列之间的datediff MySQL
EN

Stack Overflow用户
提问于 2021-10-26 21:13:17
回答 1查看 131关注 0票数 1

我有dd-mm的日期栏如下:

代码语言:javascript
复制
| xdate |
----------
| 30-07-2001 |
| 21-09-2003 |
| 16-06-2020 |

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 21:52:54

dd-mm-yyyy不是有效的MySQL日期时间格式。我建议您总是在日期类型中存储日期。

对于您的情况,一个简单的解决方案,也许不是对大型数据的性能的最佳解决方案是:

代码语言:javascript
复制
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

几个月甚至几年,你都可以尝试:

代码语言:javascript
复制
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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69730031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档