首页
技术小册
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.2 CURTIME()和CURRENT_TIME()当前时间函数 在MySQL数据库中,处理时间数据是日常操作中的一项重要任务。无论是记录用户操作的时间戳、分析数据的时间分布,还是实现基于时间的查询过滤,时间函数都扮演着至关重要的角色。在本章节中,我们将深入探讨`CURTIME()`和`CURRENT_TIME()`这两个用于获取当前时间的函数,了解它们的基本用法、差异以及在实际应用中的场景。 #### 10.4.2.1 CURTIME()函数 `CURTIME()`函数是MySQL中用于获取当前时间的函数,它返回当前的时间值,格式为`'HH:MM:SS'`,不包含日期部分。这个函数在需要记录或比较具体时间点(如日志记录、事件触发时间等)时非常有用。 **基本语法**: ```sql SELECT CURTIME(); ``` 执行上述SQL语句,MySQL将返回执行该语句时的当前时间,例如`'14:23:45'`。 **使用场景**: - **日志记录**:在应用程序或数据库操作中,经常需要记录操作发生的时间。使用`CURTIME()`可以方便地获取并存储这个时间点,便于后续的分析和审计。 - **时间比较**:在查询或业务逻辑中,可能需要比较某个操作或事件是否发生在特定的时间段内。`CURTIME()`可以与时间范围进行比较,实现基于时间的过滤。 - **性能监控**:在性能监控系统中,`CURTIME()`可用于记录关键操作的开始和结束时间,从而计算操作耗时,帮助识别性能瓶颈。 #### 10.4.2.2 CURRENT_TIME()函数 与`CURTIME()`函数相似,`CURRENT_TIME()`也是用来获取当前时间的函数,其返回的时间格式和`CURTIME()`相同,即`'HH:MM:SS'`。在大多数情况下,`CURRENT_TIME()`和`CURTIME()`可以视为等价的,它们的功能和用法几乎一致。然而,了解这种细微的差别有助于在不同数据库系统或SQL方言之间迁移代码时保持兼容性。 **基本语法**: ```sql SELECT CURRENT_TIME(); ``` 执行该语句同样会返回当前的时间值,如`'14:23:45'`。 **与CURTIME()的差异**: - **标准符合性**:虽然在实际使用中`CURRENT_TIME()`和`CURTIME()`几乎没有区别,但从SQL标准的角度来看,`CURRENT_TIME()`是更标准的表达方式。它遵循了SQL标准中关于时间函数的命名约定,因此在跨数据库平台时可能具有更好的兼容性。 - **语法灵活性**:在某些数据库系统中,`CURRENT_TIME()`可能支持额外的参数来指定时间精度(如秒、毫秒等),而`CURTIME()`则可能不支持这些特性。然而,在MySQL中,两者在语法和功能上几乎完全相同。 **使用场景**: 由于`CURRENT_TIME()`和`CURTIME()`在MySQL中的功能几乎一致,因此它们的使用场景也高度重叠。你可以根据个人偏好或项目规范选择使用其中一个。在编写可移植的SQL代码时,考虑使用`CURRENT_TIME()`可能是一个更稳妥的选择,因为它更符合SQL标准。 #### 10.4.2.3 进阶用法 虽然`CURTIME()`和`CURRENT_TIME()`的基本用法相对简单,但在实际应用中,它们可以与其他SQL功能和函数结合使用,以实现更复杂的时间处理逻辑。 - **时间格式化**:MySQL提供了`DATE_FORMAT()`函数,允许你自定义时间的显示格式。你可以将`CURTIME()`或`CURRENT_TIME()`的结果作为`DATE_FORMAT()`的输入,来得到特定格式的时间字符串。 ```sql SELECT DATE_FORMAT(CURTIME(), '%H:%i'); -- 返回小时和分钟,如'14:23' ``` - **时间计算**:结合`TIMEDIFF()`、`ADDDATE()`等函数,你可以对`CURTIME()`或`CURRENT_TIME()`返回的时间进行加减运算,以计算时间差或生成未来的时间点。 ```sql SELECT TIMEDIFF(CURTIME(), '00:00:00'); -- 计算当前时间与午夜之间的时间差 ``` - **时间范围查询**:在查询语句中,你可以将`CURTIME()`或`CURRENT_TIME()`与`BETWEEN`、`<`、`>`等操作符结合使用,来筛选出特定时间范围内的记录。 ```sql SELECT * FROM events WHERE event_time BETWEEN CURTIME() - INTERVAL 1 HOUR AND CURTIME(); -- 选出最近一小时内发生的事件 ``` #### 10.4.2.4 注意事项 - **时区问题**:`CURTIME()`和`CURRENT_TIME()`返回的时间是基于MySQL服务器的当前时区设置的。如果你的应用程序或数据库服务器跨越多个时区,需要特别注意时区设置对时间函数返回值的影响。 - **性能考虑**:虽然`CURTIME()`和`CURRENT_TIME()`函数的执行通常非常快,但在处理大量数据时,频繁调用这些函数可能会对性能产生一定影响。在可能的情况下,考虑将时间值存储在变量中或预先计算好,以减少函数调用次数。 - **兼容性**:虽然`CURTIME()`和`CURRENT_TIME()`在MySQL中高度相似,但在其他数据库系统中可能存在差异。在跨数据库平台开发时,务必查阅相关文档以确认函数的兼容性和行为差异。 综上所述,`CURTIME()`和`CURRENT_TIME()`是MySQL中用于获取当前时间的两个重要函数。它们的基本用法简单直观,但在实际应用中却能够发挥巨大的作用。通过合理使用这些函数,并结合其他SQL功能和函数,你可以轻松实现复杂的时间处理逻辑,为数据库应用增添强大的时间管理能力。
上一篇:
10.4.1 CURDATE()和CURRENT_DATE()当前日期函数
下一篇:
10.4.3 NOW()当前日期和时间函数
该分类下的相关小册推荐:
MySQL从入门到精通(一)
MySQL从入门到精通(五)
MySQL 实战 45 讲
SQL零基础到熟练应用(增删改查)
MySQL必会核心问题
MySQL从入门到精通(二)
MySQL从入门到精通(四)
MySQL8.0入门与实践
细说MySQL(零基础到高级应用)