首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
9.1 基本查询语句
9.2 单表查询
9.2.1 查询所有字段
9.2.2 查询指定字段
9.2.3 查询指定数据
9.2.4 带关键字IN的查询
9.2.5 带关键字BETWEEN AND的范围查询
9.2.6 带LIKE的字符匹配查询
9.2.7 用IS NULL关键字查询空值
9.2.8 带AND的多条件查询
9.2.9 带OR的多条件查询
9.2.10 用DISTINCT关键字去除结果中的重复行
9.2.11 用ORDER BY关键字对查询结果进行排序
9.2.12 用GROUP BY关键字分组查询
9.2.13 用LIMIT限制查询结果的数量
9.3 聚合函数查询
9.3.1 COUNT()统计函数
9.3.2 SUM()求和函数
9.3.3 AVG()平均数函数
9.3.4 MAX()最大值函数
9.3.5 MIN()最小值函数
9.4 连接查询
9.4.1 内连接查询
9.4.2 外连接查询
9.4.3 复合条件连接查询
9.5 子查询
9.5.1 带IN关键字的子查询
9.5.2 带比较运算符的子查询
9.5.3 带EXISTS关键字的子查询
9.5.4 带ANY关键字的子查询
9.5.5 带ALL关键字的子查询
9.6 合并查询结果
9.7 定义表和字段的别名
9.7.1 为表取别名
9.7.2 为字段取别名
9.8 使用正则表达式查询
9.8.1 匹配指定字符中的任意一个
9.8.2 使用“*”和“ ”来匹配多个字符
9.8.3 匹配以指定的字符开头和结束的记录
10.1 MySQL函数
10.2 数学函数
10.2.1 ABS(x)绝对值函数
10.2.2 FLOOR(x)向下取整函数
10.2.3 RAND()随机数函数
10.2.4 PI()圆周率函数
10.2.5 TRUNCATE(x,y)截断函数
10.2.6 ROUND(x)近似值函数和ROUND(x,y)四舍五入函数
10.2.7 SQRT(x)平方函数
10.3 字符串函数
10.3.1 INSERT(s1,x,len,s2)替换函数
10.3.2 UPPER(s)函数和UCASE(s)字母大写函数
10.3.3 LEFT(s,n)取左函数
10.3.4 RTRIM(s)去空格函数
10.3.5 SUBSTRING(s,n,len)截取函数
10.3.6 REVERSE(s)反转函数
10.3.7 FIELD(s,s1,s2,…,sn)位置函数
10.3.8 LOCATE(s1,s)、POSITION(s1 IN s)和INSTR(s,s1)3个位置函数
10.4 日期和时间函数
10.4.1 CURDATE()和CURRENT_DATE()当前日期函数
10.4.2 CURTIME()和CURRENT_TIME()当前时间函数
10.4.3 NOW()当前日期和时间函数
10.4.4 DATEDIFF(d1,d2)间隔天数函数
10.4.5 ADDDATE(d,n)日期计算函数
10.4.6 ADDDATE(d,INTERVAL expr type)日期时间计算函数
10.4.7 SUBDATE(d,n)日期计算函数
10.5 条件判断函数
10.6 系统信息函数
10.6.1 获取MySQL版本号、连接数和数据库名的函数
10.6.2 获取用户名的函数
10.6.3 获取字符串的字符集和排序方式的函数
10.7.1 格式化函数FORMAT(x,n)
10.7.2 改变字符集的函数
10.7.3 改变字段数据类型的函数
当前位置:
首页>>
技术小册>>
MySQL从入门到精通(三)
小册名称:MySQL从入门到精通(三)
### 10.4.5 ADDDATE(d,n) 日期计算函数 在MySQL数据库中,日期和时间的处理是数据管理和分析不可或缺的一部分。`ADDDATE()`函数作为MySQL提供的一个强大工具,允许用户轻松地在给定日期上增加指定的天数,从而进行日期计算。本章节将深入解析`ADDDATE(d,n)`函数的用法、语法规则、实际应用场景以及与其他日期函数的比较,帮助读者从入门到精通这一重要功能。 #### 1. 函数概述 `ADDDATE(date, INTERVAL expr type)`函数是MySQL中用于日期计算的函数之一,其中`ADDDATE(d,n)`是其简化形式,专门用于在日期`d`上加上天数`n`。这里的`d`代表一个日期值,可以是日期或日期时间类型的列、变量或表达式;`n`是一个整数,表示要增加的天数。如果`n`为正数,则日期向前推移;如果为负数,则日期向后推移。 #### 2. 语法详解 ```sql ADDDATE(date, INTERVAL expr TYPE) -- 或简化形式 ADDDATE(d, n) ``` - **date**:需要修改的日期或日期时间值。 - **INTERVAL expr TYPE**:在完整形式中,`expr`是表示时间间隔的表达式,而`TYPE`指定了间隔的类型(如DAY、MONTH等)。但在简化形式`ADDDATE(d,n)`中,`n`直接表示天数,无需指定类型。 - **返回值**:函数返回修改后的日期值,数据类型与输入`date`相同。 #### 3. 使用示例 ##### 示例1:基本用法 ```sql SELECT ADDDATE('2023-01-01', 10) AS NewDate; -- 结果:2023-01-11 SELECT ADDDATE('2023-01-01', -5) AS NewDate; -- 结果:2022-12-27 ``` ##### 示例2:在查询中应用 假设有一个名为`employees`的表,其中包含员工的入职日期`hire_date`,我们想要找出每位员工入职后100天的日期: ```sql SELECT employee_id, hire_date, ADDDATE(hire_date, 100) AS hundred_days_later FROM employees; ``` ##### 示例3:结合其他函数使用 `ADDDATE()`函数可以与其他日期函数结合使用,以实现更复杂的日期计算。例如,结合`CURDATE()`函数计算从今天起14天后的日期: ```sql SELECT ADDDATE(CURDATE(), 14) AS FutureDate; ``` #### 4. 注意事项 - **日期范围**:当使用`ADDDATE()`函数时,需要注意日期范围,避免超出MySQL支持的日期范围(通常是'1000-01-01'到'9999-12-31')。 - **时间部分**:如果`date`参数包含时间部分(即日期时间类型),则`ADDDATE()`函数仅修改日期部分,时间部分保持不变。 - **性能考虑**:虽然`ADDDATE()`函数在大多数情况下性能良好,但在处理大量数据时,应考虑其对查询性能的影响,尤其是在复杂的查询或大型数据库中。 #### 5. 与其他日期函数的比较 MySQL提供了多种日期和时间函数,如`DATE_ADD()`、`DATE_SUB()`等,它们在某些方面与`ADDDATE()`功能相似,但各有特点。 - **DATE_ADD()**:与`ADDDATE()`非常相似,但提供了更灵活的间隔类型指定(如MONTH、YEAR等),而不仅仅是天数。 ```sql SELECT DATE_ADD('2023-01-01', INTERVAL 1 MONTH) AS NewDate; -- 结果:2023-02-01 ``` - **DATE_SUB()**:与`ADDDATE()`相反,用于从日期中减去指定的时间间隔。 ```sql SELECT DATE_SUB('2023-01-15', INTERVAL 10 DAY) AS NewDate; -- 结果:2022-12-26 ``` - **直接加减操作**:在某些情况下,对于简单的天数加减,可以直接使用`+`或`-`操作符与`INTERVAL`表达式结合,但这在可读性和灵活性上可能不如使用专门的日期函数。 #### 6. 实际应用场景 `ADDDATE()`函数在多种实际应用场景中发挥着重要作用,包括但不限于: - **假期和事件规划**:计算特定事件(如会议、假期)的日期。 - **财务和会计**:计算账单到期日、工资发放日等。 - **库存管理**:预测产品过期日期,安排补货时间。 - **客户关系管理**:跟踪客户生日、会员日等关键日期,发送提醒或优惠信息。 #### 7. 结论 `ADDDATE(d,n)`函数是MySQL中处理日期计算的一个强大工具,通过简单直观的方式实现了日期的加减操作。掌握这一函数,不仅能够帮助我们更有效地处理数据库中的日期数据,还能在多种应用场景中提升数据处理的效率和准确性。通过本章节的学习,希望读者能够深入理解`ADDDATE()`函数的用法和原理,并在实际工作中灵活运用,实现从入门到精通的跨越。
上一篇:
10.4.4 DATEDIFF(d1,d2)间隔天数函数
下一篇:
10.4.6 ADDDATE(d,INTERVAL expr type)日期时间计算函数
该分类下的相关小册推荐:
MySQL 实战 45 讲
细说MySQL(零基础到高级应用)
MySQL从入门到精通(四)
MySQL8.0入门与实践
SQL零基础到熟练应用(增删改查)
MySQL从入门到精通(一)
MySQL必会核心问题
MySQL从入门到精通(二)
MySQL从入门到精通(五)