mysql8 ADDDATE函数对日期进行增加操作

我记得有一次,当我处理库存管理系统订单的交货日期时,客户要求我们提供预计交货日期,这需要在当前日期的基础上加上7 天。
当时正好在学习MySQL日期函数,所以决定使用ADDDATE函数来解决这个问题。

我打开数据库,输入以下SQL语句:
SELECT ADDDATE('2 02 3 -04 -01 ', INTERVAL 7 DAY);
结果立即出来,显示为'2 02 3 -04 -08 '。
看到这个结果,我心里暗暗高兴。
这个功能非常简单。

等等,我突然想到,如果客户要求的额外时间单位不是天,而是月怎么办?我再次尝试并输入:
SELECT ADDDATE('2 02 3 -04 -01 ', INTERVAL 2 MONTH);
结果是'2 02 3 -06 -01 '。
看来这个函数还可以处理不同时间单位的加法运算。

这段小小的经历让我真正体会到了ADDDATE函数的强大和灵活性。
但是,在使用这个函数时,我仍然需要注意输入日期的正确格式,否则我可能会得到错误或NULL结果。
毕竟,细节决定成败。

mysql 中日期加减

DATE_ADD() 和 DATE_SUB() 直接对日期和时间进行加减操作。
例如,添加 1 0 天:DATE_ADD(NOW(), INTERVAL 1 0 DAY)。
减去 2 个月:DATE_SUB(NOW(), INTERVAL 2 MONTH)。
负值是逆运算,减法变成加法。
例如,减去 5 天相当于添加负天数:DATE_ADD(NOW(), INTERVAL -5 DAY)。

自己掂量一下。

sql中日期增加天数的查询操作

我很熟悉它。
说一下我在杭州做ERP系统时遇到的事情。

记得有一次,老板急于想看今年第三季度的销售数据,但是数据表中的日期格式很乱,有的是YYYY-MM-DD,有的是MM/DD/YYYY。
当时我的头很晕,想知道如何将这些日期整合到季度开始日期中。

我是用SQL来做的,而且我用的是SQL Server集。
我想我首先需要将这些日期格式转换为统一格式,然后按季度拆分它们。
我使用 CONVERT 函数统一日期格式,然后使用 DATEADD 函数计算季度。
例如,如果我想计算今年第三季度第一天的日期,我首先使用DATEPART函数获取年份和月份,然后使用DATEADD函数减去3 天(月-1 )。
这样想很有趣。

后来发现直接用DATEADD函数计算下个月的第一天要简单得多。
例如,如果我想计算下个月的第一天,我会使用 DATEADD 函数添加 3 0 天,然后使用 DATEPART 函数获取月份。
如果月份大于 1 2 ,我将减去 1 2 个月。
您看,如果您这样做,您可以获得下个月的第一个日期。

顺便说一句,我还使用了DATEADD函数来计算员工的服务期限。
例如,如果我正在寻找一名员工的加入当我想要计算自某个日期以来的总天数时,我使用 GETDATE() 函数获取当前日期,然后使用 DATEADD 函数计算两个日期之间的差值。
你看,这样做的话,就可以得到员工的工龄了。

所以你看,使用DATEADD函数是不是很方便?但是,如果您使用的不是 SQL Server,而是 MySQL 或 PostgreSQL,您可能必须改变想法,因为不同的数据库系统处理日期和时间的方式可能略有不同。
不过没关系,计算日期的关键是把逻辑搞清楚,然后用合适的函数来实现。