Oracle函数

news2024/11/23 12:39:57

目录

一、数值函数

1.ABS(value):绝对值

2.CEIL(value):向上取整

3.FLOOR(value):向下取整

4.ROUND(value):四舍五入

5.MOD(value(被除数),divisor(除数)):求模

6.SIGN(value):判断正(0)负(-1)和零(0)

7.POWER(value,exponent):求幂

8.SQRT(value):求平方根

9.TRUNC(value,precision):按照 precision 截取 value

10.TO_CHAR(数值,补齐)

11.random:随机数

12. EXP(value):e 的 value 次幂

二、字符串函数

1.LENGTH():求字符串的长度

2.LAPD:使用指定的字符在字符的左边填充

3.RPAD:使用指定的字符在字符的右边填充

4.UPPER:字符串大写

5.INITCAP:将字符串的第一个字母变为大写,其他变为小写

6.LOWER:字符串小写

7.TRIM:截取掉前面或后面的字符串

8.LTRIM:从左边截取掉指定的字符

9.RTRIM:从右边截取掉指定的字符

10.SUBSTR:从第几个位置开始截取几个字符

11.instr(sourceString,destString,start,appearPosition)

12.reverse:字符串反转

13.CONCAT与||

14.WM_CONCAT

15.REGEXP_REPLACE:正则匹配替换

三、日期函数

1.SYSDATE:系统日期时间

2.SYSTIMESTAMP

3.ADD_MONTH(date,number):给日期添加/减少月份

4.GREATEST(date1, date2, . . .):从日期列表中选择最晚的日期

5.LEAST(date1,date2,...):从日期列表中选择最早的日期

6.LAST_DAY(date):本月的最后一天

7.MONTHS_BETWEEN(date1,date2):给出 date2 - date1 的月数(可以是小数)

8.NEXT_DAY( date, ‘day’)

9.NEW_TIME

10.ROUND

11.TRUNC

四、转换函数

1.时间戳转日期

2.日期转字符串

3.字符串转日期

4.字符串转数字

五、换行函数(与Mysql一样)

六、分析函数(窗口函数,与Mysql8一样)

七、集合运算


一、数值函数

函数名说明
ABS(value)       绝对值
CEIL(value)向上取整;大于或等于 value 的最小整数
FLOOR(value)向下取整;小于或等于 value 的最小整数
ROUND(value,precision)

按precision精度4舍5入

MOD(value,divisor)求模
SIGN(value)value 为正返回 1,为负返回 -1,为零返回 0.
POWER(value,exponent)valueexponent 次幂
SQRT(value)value 的平方根
TRUNC(value,precision)按照 precision 截取 value
TO_CHAR()数值转换为字符串
random随机数
EXP(value)evalue 次幂
SIN(value)余弦
SINH(value)反余弦
COS(value)余弦
COSH(value)反余弦
TAN(value)正切
TANH(value)反正切
LN(value)value 的自然对数
LOG(value)value 的以 10 为底的对数

1.ABS(value):绝对值

-- 绝对值
select abs(-128) from DUAL; -- 128
select abs(-128.36) from DUAL; -- 128.36

2.CEIL(value):向上取整

-- 向上取整
SELECT CEIL(12.65) FROM DUAL;-- 13
SELECT CEIL(-12.65) FROM DUAL; -- -12

3.FLOOR(value):向下取整

-- 向下取整
SELECT FLOOR(12.65) FROM DUAL;-- 12
SELECT FLOOR(-12.65) FROM DUAL; -- -13

4.ROUND(value):四舍五入

-- 四舍五入
select round(45.6577, 2) from DUAL; -- 45.66
select round(123.754) from DUAL; -- 124,不写保留位数,默认为0
select round(123.754, 0) from DUAL; -- 124

5.MOD(value(被除数),divisor(除数)):求模

-- 求模
select mod(32, 7) from DUAL;-- 4
select mod(30, 5) from DUAL;-- 0

6.SIGN(value):判断正(0)负(-1)和零(0)

-- 判断正负数
select sign(12) from DUAL; -- 正数为1
select sign(-9.6) from DUAL; -- 负数为-1
select sign(0) from DUAL; -- 0就是0

7.POWER(value,exponent):求幂

-- 求幂
select power(2, 3) from DUAL;-- 8
SELECT POWER(-2,4) FROM DUAL;-- 16
SELECT POWER(-2,5) FROM DUAL;-- -32
SELECT POWER(4,-2) FROM DUAL; -- 0.0625
SELECT POWER(-2,-3) FROM DUAL; -- -0.125

8.SQRT(value):求平方根

-- 开平方根
select sqrt(2) from DUAL;-- 1.41421
select sqrt(4) from DUAL; --2
select SQRT(0.09)from DUAL; -- 0.3

9.TRUNC(value,precision):按照 precision 截取 value

-- 截取小数点后的几位
select trunc(123.5678, 2) from DUAL;-- 123.56
select trunc(123.5678) from DUAL;-- 保留整数位

10.TO_CHAR(数值,补齐)

-- 数值转换为字符串,长度不够的用0补齐
select to_char(123.45, '000.00') from DUAL;-- 123.45
select to_char(123.45, '0000.000') from DUAL; -- 0123.450
select to_char(45165567541.78, 'L00,000,000,000.00') from DUAL;-- ¥45,165,567,541.78
select to_char(45165567541.78, '$00,000,000,000.00') from DUAL;-- $45,165,567,541.78

11.random:随机数

-- 随机值
-- 获取[0,9]之间的随机小数
SELECT dbms_random.VALUE(1,9) FROM DUAL;
-- 1.5293865911947350818736624183542672884
-- 获取[0,9]之间的随机整数
SELECT TRUNC(dbms_random.VALUE(0,9)) FROM DUAL;
-- 7

12. EXP(value):evalue 次幂

select exp(0) from DUAL;-- 1
select exp(1) from DUAL;-- 2.71828182845904523536028747135266249776

二、字符串函数

函数名说明
LENGTH以字符给出字符串的长度
LPAD使用指定的字符在字符的 左边填充
RPAD使用指定的字符在字符的 右边填充
UPPER将字符串变为 大写
INITCAP将字符串的第一个字母变为大写,其他变为小写
LOWER将字符串转换成 小写
TRIM裁剪 掉前面或后面的字符串
LTRIM左边裁剪掉指定的字符
RTRIM右边裁剪掉指定的字符
SUBSTR从第几个位置开始截取几个字符
INSTR找出某个字符串的 位置
INSTR2等同于INSTR
REVERSE字符串反转
CONCAT拼接两个字符串,与 || 相同
WM_CONCAT分组字符串拼接
REPLACE执行字符串搜索和 替换
REGEXP_REPLACE通过正则替换字符串内容
ASCII返回对应字符的十进制值
CHR给出十进制返回字符
INSTRB找出某个字符串的 位置字节数
LENGTHB以字节给出字符串的长度
SUBSTRB取字符串的子串(以字节)
SOUNDEX返回一个同音字符串
TRANSLATE执行字符串搜索和 替换

1.LENGTH():求字符串的长度

-- 求字符串长度
SELECT LENGTH('ASDSADJFMDKOA') FROM DUAL;-- 13
SELECT ID, LENGTH(ID), name, LENGTH(NAME) FROM teacher;

2.LAPD:使用指定的字符在字符的左边填充

SELECT LPAD('abc',6,'-') from DUAL;--   ---abc

3.RPAD:使用指定的字符在字符的右边填充

SELECT RPAD('abc',6,'-') from DUAL;--   abc---

4.UPPER:字符串大写

SELECT upper('abc') from DUAL;-- ABC

5.INITCAP:将字符串的第一个字母变为大写,其他变为小写

SELECT INITCAP('abcNAMe') FROM DUAL;-- Abcname

6.LOWER:字符串小写

SELECT LOWER('ABCD') from DUAL;-- abcd

7.TRIM:截取掉前面或后面的字符串

SELECT LENGTH('  hello java  ') FROM DUAL;-- 14

SELECT TRIM('  hello java  ') FROM DUAL;--hello java
SELECT LENGTH(TRIM('  hello java  ')) FROM DUAL;-- 10

8.LTRIM:从左边截取掉指定的字符

SELECT LTRIM('  hello java  ') FROM DUAL;--hello java
SELECT LENGTH(LTRIM('  hello java  ')) FROM DUAL;-- 12

9.RTRIM:从右边截取掉指定的字符

SELECT RTRIM('  hello java  ') FROM DUAL;-- hello java
SELECT LENGTH(RTRIM('  hello java  ')) FROM DUAL;-- 12

10.SUBSTR:从第几个位置开始截取几个字符

-- 从第1位开始截取4位
SELECT SUBSTR('zhangsan',0,4) FROM DUAL;-- zhan

-- 从第1位开始截取4位
SELECT SUBSTR('zhangsan',1,4) FROM DUAL;-- zhan

-- 从第3位开始截取2位
SELECT SUBSTR('zhangsan',3,2) FROM DUAL;-- an

-- 从倒数第5位往右截取3位
SELECT SUBSTR('zhangsan',-5,3) FROM DUAL;-- ngs

11.instr(sourceString,destString,start,appearPosition)

        instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')

SELECT INSTR('zhangsan','a') FROM DUAL;-- 3
SELECT INSTR('zhangsan','a',2,2) FROM DUAL;-- 7
SELECT INSTR2('zhangsanS','s',2) FROM DUAL;-- 6

12.reverse:字符串反转

-- 字符串反转
SELECT reverse('123456') from DUAL;-- 654321

13.CONCAT与||

SELECT CONCAT('hel','lo') FROM DUAL;--hello
SELECT 'hel'||'lo' FROM DUAL;-- hello

14.WM_CONCAT

SELECT 
	t1.NAME AS '区域', wm_concat(t2.NAME) AS '地址' 
FROM T_AREA t1 
LEFT JOIN T_ADDRESS t2 ON t2.AREAID = t1.ID
GROUP BY t1.NAME;

15.REGEXP_REPLACE:正则匹配替换

三、日期函数

函数名说明
SYSDATE系统日期时间
SYSTIMESTAMP系统日期时间,精确到小数秒
ADD_MONTHS(date,number)在日期 date 上增加 count 个月
GREATEST(date1, date2, . . .)从日期列表中选出最晚的日期
LEAST( date1, date2, . . .)从日期列表中选出最早的日期
LAST_DAY( date )返回日期 date 所在月的最后一天
MONTHS_BETWEEN(date2, date1)给出 date2 - date1 的月数(可以是小数)
NEXT_DAY( date, ‘day’)给出日期 date 之后下一天的日期,这里的 day 为星期,如:MONDAYTuesday等。
NEW_TIME(date, ‘this’, ‘other’)给出在 this时区 = Other时区 的日期和时间
ROUND(date,’format’)未指定 format 时,如果日期中的时间在中午之前,则将日期中的时间截断为 12 A.M(午夜,一天的开始),否则进到第二天。
TRUNC(date,’format’)未指定 format 时,将日期截为 12 A.M(午夜,一天的开始)

1.SYSDATE:系统日期时间

SELECT SYSDATE FROM DUAL;-- 2022-12-14 20:56:12

2.SYSTIMESTAMP

SELECT SYSTIMESTAMP FROM DUAL;-- 2022-12-14 20:56:31.819923 +08:00

3.ADD_MONTH(date,number):给日期添加/减少月份

-- 给当前日期添加1个月
SELECT ADD_MONTHS(SYSDATE,1) FROM DUAL;-- 2023-01-14 20:58:50

-- 给当前日期减少2个月
SELECT ADD_MONTHS(SYSDATE,-2) FROM DUAL;-- 2022-10-14 20:58:57

4.GREATEST(date1, date2, . . .):从日期列表中选择最晚的日期

-- 从日期列表中选出最晚的日期
SELECT GREATEST(TO_DATE('2021-01-01','YYYY-MM-DD'),TO_DATE('2022-01-01','YYYY-MM-DD')) FROM DUAL;-- 2022-01-01 00:00:00
SELECT GREATEST(SYSDATE,ADD_MONTHS(SYSDATE,1)) FROM DUAL;-- 2023-01-14 21:04:24

5.LEAST(date1,date2,...):从日期列表中选择最早的日期

-- 从日期列表中选出最早的日期
SELECT LEAST(SYSDATE,ADD_MONTHS(SYSDATE,1)) FROM DUAL;-- 2022-12-14 21:04:55

6.LAST_DAY(date):本月的最后一天

-- 本月的最后一天
SELECT LAST_DAY(SYSDATE) FROM DUAL;-- 2022-12-31 22:00:27

7.MONTHS_BETWEEN(date1,date2):给出 date2 - date1 的月数(可以是小数)

--给出 date2 - date1 的月数(可以是小数)
SELECT MONTHS_BETWEEN(SYSDATE,ADD_MONTHS(SYSDATE,1)) FROM DUAL;-- -1
SELECT MONTHS_BETWEEN(TO_DATE('2022-01-01','YYYY-MM-DD'),TO_DATE('2020-05-21','YYYY-MM-DD')) FROM DUAL;
-- 19.35483870967741935483870967741935483871

8.NEXT_DAY( date, ‘day’)

-- 按照美国时间,周日是周一,所以2022-12-14的下周二为2022-12-19(相当于中国的下周一)
SELECT NEXT_DAY(SYSDATE,2) FROM DUAL;-- 2022-12-19 21:08:25

9.NEW_TIME

【参数】:c1,c2对应的 时区及其简写  

 大西洋标准时间:AST或ADT  

 阿拉斯加_夏威夷时间:HST或HDT  

 英国夏令时:BST或BDT  

 美国山区时间:MST或MDT  

 美国中央时区:CST或CDT  

 新大陆标准时间:NST  

 美国东部时间:EST或EDT  

 太平洋标准时间:PST或PDT  

 格林威治标准时间:GMT  

 Yukou标准时间:YST或YDT
--给出时间dt1在c1时区对应c2时区的日期和时间
SELECT NEW_TIME(SYSDATE,'NST','BST') FROM DUAL;
-- 2022-12-14 14:33:41

10.ROUND

参考博文:Oracle中的ROUND( )日期四舍五入函数_编码不能停的CSDN博客

--讲解:年份按**1-6月和7-12月**四舍五入到最近的 几几年1月
select round(to_date('6-2月-13'),'year') from dual;
select round(to_date('6-5月-13'),'year') from dual;
select round(to_date('6-7月-13'),'year') from dual;

--讲解:月份按**1-15日和16-30日**四舍五入到最近的 几月1日
select round(to_date('15-2月-13'),'month') from dual;
select round(to_date('16-2月-13'),'month') from dual;

--讲解:天数按**周一至周三 和 周四至周日  **四舍五入到最近的 周日

 -- 2017年6月21是周三      运行结果是:2017/6/18 上周日

select round(to_date('21-6月-2017'),'day') from dual;


 -- 2017年6月22是周四      运行结果是:2017/6/25  下周日

select round(to_date('22-6月-2017'),'day') from dual;

11.TRUNC

-- 按日截取
select TRUNC(sysdate) from dual;

-- 当年第一天
select TRUNC(sysdate, 'yyyy') from dual;

-- 当月第一天
select TRUNC(sysdate, 'mm') from dual;

-- 按小时截取
select TRUNC(sysdate, 'hh') from dual;

-- 按分钟截取
select TRUNC(sysdate, 'mi') from dual;

四、转换函数

1.时间戳转日期

-- TIMESTAMP 转 DATE
SELECT TO_DATE(TO_CHAR(SYSDATE, 'yyyy-MM-dd HH24:mi:ss'), 'yyyy-MM-dd HH24:mi:ss')
FROM DUAL;
--2022-12-14 23:23:22

-- TIMESTAMP 转 DATE
SELECT CAST(SYSDATE AS DATE)
FROM DUAL;
-- 2022-12-14 23:23:31

2.日期转字符串

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;--2022-12-14

select TO_CHAR(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;-- 2022-12-14 11:24:55

SELECT TO_CHAR(SYSDATE, 'YYYY') || '年'
           || TO_CHAR(SYSDATE, 'MM') || '月'
           || TO_CHAR(SYSDATE, 'DD') || '日'
FROM DUAL;-- 2022年12月14日

3.字符串转日期

SELECT TO_DATE('2022-12-14','YYYY-MM-DD') FROM DUAL;--2022-12-14 00:00:00

4.字符串转数字

SELECT TO_NUMBER('1000')+10 FROM DUAL;--1010

五、换行函数(与Mysql一样)

可以参考我的另一篇博文Mysql学习——行与列的多种转换_雷神乐乐的博客-CSDN博客

六、分析函数(窗口函数,与Mysql8一样)

可以参考我的另一篇博文mysql8高级——窗口函数与常用日期时间函数_雷神乐乐CSDN博客

七、集合运算

函数名称说明
UNION ALL并集返回各个查询的所有记录,包括重复 记录。
UNION并集返回各个查询的所有记录,不包括重复 记录。
INTERSECT交集返回两个查询 共有 的记录。
MINUS差集返回第一个查询检索出的记录 减去 第二个查询检索出的记录之后 剩余 的记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

隐私计算学习笔记

目录 安全保护技术和应用总结 基础隐私计算技术在联邦学习中的应用 参考书籍 图片来源: https://www.basebit.ai/en/Statics/Images/en/dbys.png 隐私计算技术的产生是互联网、大数据以及区块链等技术发展到一定阶段的必然成果,以下为大家分享读书笔…

01-32-spring5-bean-ioc-aop

01-spring5: spring 1、spring概念 1、什么是spring及优点 Spring框架使Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spr…

【推荐系统学习笔记】-- 2、特征工程

1、可利用的特征 1.1 用户行为特征 显性反馈行为:点赞、评分、评价等隐形反馈行为:点击、浏览、播放、加入购物车等 1.2 用户关系数据 显性:关注、好友关系隐形:点赞、共同观影使用Graph Embedding生成用户和物品的Embedding …

[附源码]Python计算机毕业设计SSM基于web的托育园管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

蓝牙遥控小车基础篇

开发环境: STM32F103R8T6最小系统板(IO顺序引出) 3D建模蓝牙遥控小车STL 蓝牙遥控小车纯HAL库代码 TP-Bluetooth-Car.apk蓝牙apk 原理:(写代码前必须要知道模块的参数) 蓝牙模块HC-05使用指南 HC-05蓝…

C++入门——函数重载

C入门——函数重载与缺省 先说说什么是缺省 大家生活中都知道什么关于缺省这个词的例子吗? 肯定是一头雾水,没事我举一个例子,给大家解释一下。 假如小菜是一个舔狗,他天天跟女神买早餐、嘘寒问暖。可是女神还是天天不为所动&am…

基于LabVIEW单片机的抢答器的设计

实训题目:基于LabVIEW单片机的抢答器的设计 1 系统设计 1.1 设计要求 1.1.1 设计任务 设计一个基于LABVIEW的6人抢答器,实现抢答器的基本功能。 1.1.2 性能指标要求 需要自己设计电路并焊接电路板。基本要求:有一个主持人控制开关和…

【华为机试真题详解】投篮大赛【2022 Q4 | 100分】

文章目录 前言题目描述示例 1题目解析参考代码前言 《华为机试真题详解 Python实现》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优)…

WeOps上新啦 | WeOpsV3.13网络设备监控全新改造,支持拓展不同品牌型号

本次WeOpsV3.13版本更新主题总结为: 优化网络设备监控,支持拓展不同品牌和型号的设备监控新增3D立体应用全景大屏,全方位展示应用和监控情况新增事件订阅,支持资产的到期提醒监控告警/IT服务台等模块持续更新,简化操作…

基于Android的太原市景点推荐系统的设计与实现

毕业设计 基于Android的太原市景点 推荐系统的设计与实现 1.课题意义及目标 随着人们生活水平的提高,外出旅游已经成了人们放松休闲的主要活动之一。现在移动端设备已是人们必备,最重要的是携带方便,基于Android的太原市景点推…

数图互通公用房基础数据管理与维护

公用房情况信息化,包括公用房位置、面积参数等,可便捷维护,并提供查询统计;实现二级单位对分配公用房的管理,可便捷维护,并提供查询统计;实现公用房使用人,对使用公用房的管理&#…

C++ Reference: Standard C++ Library reference: Containers: list: list: clear

C官网参考链接&#xff1a;https://cplusplus.com/reference/list/list/clear/ 公有成员函数 <list> std::list::clear C98 void clear(); C11 void clear() noexcept;清除内容 从list容器中删除所有元素&#xff08;已销毁&#xff09;&#xff0c;并将容器的size保留为…

设计模式-外观模式

前言 在聊外观模式之前&#xff0c;我们先来聊聊体检过程。一般体检过程就是我们根据网上预定得日期空腹去体检中心。根据预定得项目&#xff0c;有一般检查、内科、外科、眼科、彩超、心电图、血常规、尿常规等等项目。 而我们往往第一次去是不知道这些房间是在哪里的&#…

XenServer7.6安装教程

XenServer7.6安装安装步骤其他XenServer 7.0 系统 yum 出错解决办法XenServer其他部署问题安装步骤 进入系统启动界面 > 按回车&#xff0c;等待加载&#xff1a; 1、键盘布局选择 > 选择us&#xff1a; 2、欢迎界面 > 选择ok&#xff1a; 3、用户协议 > 选…

【大数据入门核心技术-Flume】(三)使用Flume采集数据到HDFS

目录 一、准备工作 1、Hadoop环境安装 2、Flume安装部署 二、采集数据到HDFS 1、配置任务文件 2、启动传输 3、查看是否同步成功 三、常见问题 1、运行flume-ng agent时报错com.google.common.base.Preconditions.checkArgument 2、ERR: File name has been re-used w…

tomcat配置https

tomcat配置前提需要开放需要配置端口&#xff0c;尤其是云服务器需要单独去提供商控制面板放行好再进行配置HTTPS&#xff0c;常见配置的端口&#xff1a;443、8443&#xff0c;另外配置过程如果项目正常运行&#xff0c;建议备份一份配置文件。 tomcat配置https步骤 一、我们…

EEMD(集合经验模态分解)

1. EEMD(集合经验模态分解)的概念 EEMD(Ensemble Empirical Mode Decomposition)是最常见的一种EMD改进方法。他的优势主要是解决EMD方法中的模态混叠现象。 说到模态混叠,顾名思义就是不同模态的信号混叠在一起,一般有两种情况:一是不同特征尺度的信号在一个IMF分量中…

更多自有品牌创新好物,尽在2023深圳国际自有品牌展暨新消品展

受整体环境的影响&#xff0c;以及内容购物、兴趣电商、O2O、团长等新消费方式崛起&#xff0c;传统商场、大卖场等实体零售市场发展呈下滑趋势。让零售行业可以重拾信心&#xff0c;迫切需要寻找新的业绩突破形式。这些年自有品牌&#xff0c;被越来越多的国内零售商所关注&am…

BL101助力于采集光伏电流电压

能源危机在世界范围内愈演愈烈&#xff0c; 俄乌冲突后&#xff0c;美国加大对俄罗斯能源的制裁力度&#xff0c;禁止从俄罗斯进口能源&#xff0c;也想办法让其欧洲盟友对俄罗斯进行抵制。导致油价高企&#xff0c;天然气价格也是一路飙升。各国都在发展新能源&#xff0c;风电…

【工具】JS脚本|网页任意视频倍速播放(包括MOOC、本地视频、其他的视频)

只要浏览器播放视频时用的是<video>&#xff0c;而且当前页面只有这一个视频&#xff0c;就可以用这个脚本。 刚好也是世界杯 CSDN 博客的活动了&#xff0c;虽然对活动没什么兴趣但是还是写一句和活动相关的话吧——世界杯为什么要看直播呢&#xff01;不如一起来倍速观…