[学习笔记] Oracle字符串函数、日期函数、数值函数、转换函数、聚合函数
函数
- 单行函数:对一行数据进行操作的函数,如字符串函数、数值函数、转换函数、日期函数等。
- 聚合函数:同时对多行数据进行操作,如求和函数等。
字符串函数
| 函数 | 说明 |
|---|---|
| ASCII(X) | 求字符X的ASCII码 |
| CHR(X) | 求ASCII码对应的字符 |
| LENGTH(X) | 求字符串X的字符长度 |
| CONCATA(X,Y) | 连接X和Y两个字符串 |
| INSTR(X,Y[,START]) | 查找在字符串X中字符串Y的位置,可以指定从Start位置开始搜索,默认从头开始 |
| LOWER(X) | 把字符串中大写字母转换为小写 |
| UPPER(X) | 把字符串中小写字母转换为大写 |
| INITCAP(X) | 把字符串中所有单词首字母转换为大写,其余小写 |
| LTRIM(X[,Y]) | 去掉字符串X左边的Y字符串,Y不填时,默认的是字符串X左边去空格 |
| RTRIM(X[,Y]) | 去掉字符串X右边的Y字符串,Y不填时,默认的是字符串X右边去空格 |
| TRIM(X[,Y]) | 去掉字符串X两边的Y字符串,Y不填时,默认的是字符串X左右去空格 |
| REPLACE(X,old,new) | 将字符串中的old字符替换为new字符 |
| SUBSTR(X,start[,length]) | 截取字符串X,从start位置开始截取长度为length的字符串,length不填默认为截取到字符串X末尾 |
| RPAD(X,length[,Y]) | 对字符串X进行右补字符Y使字符串长度达到length长度 |
| LPAD(X,length[,Y]) | 对字符串X进行左补字符Y使字符串长度达到length长度 |
日期函数
| 函数 | 说明 |
|---|---|
| sysdate() | 系统的当前时间 |
| systimestamp() | 系统的当前时间,包含时区信息,精确到微秒 |
| dbtimezone() | 返回数据库时区 |
| ADD_MONTHS(r,n) | 返回在指定日期r上加上月份n后的日期,n可以为负数 |
| LAST_DAY(r) | 返回指定r日期的当前月份的最后一天的日期 |
| NEXT_DAY(r,c) | 返回指定r日期后的星期几c对应的日期 |
| EXTRACT(time) | 返回指定time时间当中的年月日、时分秒等特定部分 |
| MONTHS_BETWEEN(r1,r2) | 返回两个日期间的月份数,结果是正数、负数、小数 |
| ROUND(r[,f]) | 将日期r按f的格式进行四舍五入 |
| TRUNC(r[,f]) | 将日期r按f的格式进行截取 |
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select systimestamp from dual;
select dbtimezone from dual;
-- 结果为 2018-11-30,2018-10-31
select
to_char(add_months(to_date('2018-10-31','yyyy-mm-dd'),1),'yyyy-mm-dd'),
to_char(add_months(to_date('2018-09-30','yyyy-mm-dd'),1),'yyyy-mm-dd')
from dual;
select last_day(sysdate) from dual;
select next_day(to_date('2018-11-12','yyyy-mm-dd'),'星期四') from dual;
select extract(year from timestamp '2018-11-12 15:36:01') as year,
extract(month from timestamp '2018-11-12 15:36:01') as month,
extract(day from timestamp '2018-11-12 15:36:01') as day,
extract(minute from timestamp '2018-11-12 15:36:01') as minute,
extract(second from timestamp '2018-11-12 15:36:01') as second
from dual;
select months_between(to_date('2018-11-12', 'yyyy-mm-dd'),
to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整数
months_between(to_date('2018-11-12', 'yyyy-mm-dd'),
to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小数
months_between(to_date('2017-11-12', 'yyyy-mm-dd'),
to_date('2018-10-12', 'yyyy-mm-dd')) as fs --负数
from dual;
select sysdate, --当前时间
round(sysdate, 'yyyy') as year, --按年
round(sysdate, 'mm') as month, --按月
round(sysdate, 'dd') as day, --按天
round(sysdate) as mr_day, --默认不填按天
round(sysdate, 'hh24') as hour --按小时
from dual;
select sysdate, --当前时间
trunc(sysdate, 'yyyy') as year, --按年
trunc(sysdate, 'mm') as month, --按月
trunc(sysdate, 'dd') as day, --按天
trunc(sysdate) as mr_day, --默认不填按天
trunc(sysdate, 'hh24') as hour --按小时
from dual;
数值函数
| 函数 | 解释 |
|---|---|
| ABS(X) | 求数值X的绝对值 |
| COS(X) | 求数值X的余弦 |
| ACOS(X) | 求数值X的反余弦 |
| CEIL(X) | 向上取整 |
| FLOOR(X) | 向下取整 |
| log(x,y) | 求x为底y的对数 |
| mod(x,y) | 求x除以y的余数 |
| power(x,y) | 求x的y次幂 |
| sqrt(x) | 求x的平方根 |
| round(x[,y]) | 求数值x在y位进行四舍五入。y默认为0,可以为负数 |
| trunc(x[,y]) | 求数值x在y位进行直接截取。y默认为0,可以为负数 |
转换函数
| 函数 | 解释 |
|---|---|
| asciistr(x) | 把字符串转换为数据库字符集对应的ASCII值 |
| bin_to_num(x1[x2...]) | 二进制数值转换为十进制数值 |
| cast(x as type) | 把x转换为type类型的数据 |
| convert(x,d_chset[,r_chset]) | 对字符串x按原字符集r_chset转换为目标字符集d_chset |
| to_char(x[,f]) | 把字符串或时间类型x按格式f转换为字符串 |
| to_date(x[,f]) | 把字符串x按照格式f转换为时间类型 |
| to_number(x[,f]) | 把字符串x按照格式f转换为数值类型 |
其中数值的格式f可以参考下表:
| 参数 | 示例 | 说明 |
|---|---|---|
| 9 | 999 | 指定位置返回数字 |
| . | 99.9 | 指定小数点的位置 |
| , | 99,9 | 指定位置返回一个逗号 |
| $ | $99.9 | 指定开头返回一个美元符号 |
| EEEE | 9.99EEEE | 指定科学计数法 |
聚合函数
| 函数 | 解释 |
|---|---|
| AVG([distinct ] expr) | 求列或列组成的表达式expr的平均值 |
| count(*|[distinct]expr) | 计算查询结果的条数或行数 |
| MAX([distinct] expr) | 指定列或列组成的表达式expr中的最大值 |
| MIN([distinct] expr) | 指定列或列组成的表达式expr中的最小值 |
| SUM([distinct] expr) | 对指定列或列组成的表达式expr进行求和 |
select classno, avg(t.age) from stuinfo t where t.age < 30 group by t.classno;
select classno, sum(age), count(*), sum(age) / count(*), avg(age) from stuinfo t where t.age < 30 group by t.classno;
[学习笔记] Oracle字符串函数、日期函数、数值函数、转换函数、聚合函数的更多相关文章
- matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换
一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- 「学习笔记」字符串基础:Hash,KMP与Trie
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...
- 【学习笔记】字符串—马拉车(Manacher)
[学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...
- javaSE学习笔记(15) ---缓冲流、转换流、序列化流
javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化 ...
- Oracle学习笔记_09_字符串相关函数
二.参考资料 0.Oracle中的字符串类型及相关函数详解 1.ORACLE 字符串操作 2.oracle函数大全-字符串处理函数
- C++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量
学习了类的继承,今天说一下当父类与子类中有同名函数和变量时那么程序将怎么执行.首先明确当基类和子类有同名函数或者变量时,子类依然从父类继承. 举例说明: 例程说明: 父类和子类有同名的成员 data: ...
- Vue学习笔记十一:按键修饰符和自定义指令(钩子函数)
目录 padStart:补位 按键修饰符 Vue提供的按键修饰符 自定义按键修饰符 自定义指令 自定义指令的使用 钩子函数 钩子函数参数 使用钩子函数的bingding参数 私有自定义指令 钩子函数的 ...
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
随机推荐
- redis入门到精通系列(七):redis高级数据类型详解(BitMaps,HyperLogLog,GEO)
高级数据类型和五种基本数据类型不同,并非新的数据结构.高级数据类型往往是用来解决一些业务场景. (一)BitMaps (1.1) BitMaps概述 在应用场景中,有一些数据只有两个属性,比如是否是学 ...
- jstl中的if标签
<%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" ...
- Java 将Word转为OFD
通常在工作中比较常用到的Microsoft Word是属于国外的文档内容编辑软件,其编译技术均属国外.而OFD是一种我国的自主文档格式,在某些特定行业或企业的文档存储技术上是一种更为安全的选择.下面将 ...
- Redis | 第12章 Sentinel 哨兵模式《Redis设计与实现》
目录 前言 1. 启动并初始化 Sentinel 2. Sentinel 与服务器间的默认通信 2.1 获取主服务器信息 2.2 获取从服务器信息 2.3 向主服务器和从服务器发送信息 3. 接受来自 ...
- hbuilder打包app基本流程
声明:本文可能用到一些工具和第三方网站,都是为了达到目的而使用的工具,绝不含有广告成分 1.下载.最新的Hbuilder X貌似不能直接创建移动app了(自己不会用),建议旧版.可去腾某讯软件中心下载 ...
- java多线程8:阻塞队列与Fork/Join框架
队列(Queue),是一种数据结构.除了优先级队列和LIFO队列外,队列都是以FIFO(先进先出)的方式对各个元素进行排序的. BlockingQueue 而阻塞队列BlockingQueue除了继承 ...
- [BUUCTF]PWN12——[BJDCTF 2nd]r2t3
[BUUCTF]PWN12--[BJDCTF 2nd]r2t3 题目网址:https://buuoj.cn/challenges#[BJDCTF%202nd]r2t3 步骤: 例行检查,32位,开启了 ...
- java JDK8 时间处理
目录 时间格式化 LocalDate:年月日 LocalTime:时分秒毫秒 LocalDateTime:年月日时分秒 Instant:纳秒时间戳 Duration:两时间间隔 Duration:处理 ...
- Go - 如何编写 ProtoBuf 插件(二)?
目录 前言 定义插件 使用插件 获取自定义选项 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (一) >,分享了使用 proto3 的 自定义选项 可以实现插 ...
- CF628B New Skateboard 题解
Content 有一个长度为 \(n\) 的数字串 \(s\),求出有多少个子串能够被 \(4\) 整除. 数据范围:\(1\leqslant n\leqslant 3\times 10^5\). S ...