mysql字符串转日期相减

在MySQL中,我们可以通过字符串转日期来对日期进行计算,计算结果也可以转换回字符串。

当我们从数据库中查询到一个日期,但是该日期的格式并不是MySQL识别的日期格式(如YYYY-MM-DD),而是字符串形式(如Jun 1 2021),我们就需要通过STR_TO_DATE()函数将其转换为MySQL可识别的日期格式。

SELECT STR_TO_DATE('Jun 1 2021','%M %d %Y'); 

然而,有时我们需要计算两个日期之间的天数或日期间隔,我们可以将日期通过STR_TO_DATE()函数转换为MySQL日期格式,然后进行日期计算。计算出来的结果可以通过DATE_FORMAT()函数再次转换为字符串格式。

SELECT DATE_FORMAT(STR_TO_DATE('Jun 1 2021','%M %d %Y') - INTERVAL 30 DAY,'%Y.%m.%d'); 

上面的SQL语句表示将日期2021年6月1日减去30天,然后将计算结果转换为“年.月.日”的字符串格式。

除了减去天数,我们还可以对年、月、日进行加减运算。

SELECT DATE_FORMAT(STR_TO_DATE('Jun 1 2021','%M %d %Y') + INTERVAL 2 YEAR,'%Y-%m-%d');
SELECT DATE_FORMAT(STR_TO_DATE('Jun 1 2021','%M %d %Y') + INTERVAL 1 MONTH,'%M %d %Y') + INTERVAL 15 DAY,'%Y-%m-%d'); 

上面的三个SQL语句分别表示将日期2021年6月1日加上2年、1个月、15天,然后将计算结果转换为“年-月-日”的字符串格式。

通过字符串转日期以及日期加减运算,我们可以方便地对日期进行计算。

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...