字符函数、数字函数和日期函数

简介: 一、官档 Book → SQL Language Reference → 5 Functions → Single-Row Functions 二、字符函数 大小写转换函数 函数 说明 UPPER 语法:UPPER(string) 说明:返回大写的string.

一、官档

Book → SQL Language Reference → 5 Functions → Single-Row Functions

二、字符函数

大小写转换函数
函数 说明
UPPER 语法:UPPER(string)
说明:返回大写的string.不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的.如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的.

例子:

SELECT UPPER('AaBbCcDd') "AaBbCcDd"
  FROM DUAL;

LOWER 语法:LOWER(string)
说明:返回小写的string。不是字母的字符不变。
  • 如果string是CHAR数据类型的,那么结果也是CHAR类型的。
  • 如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的。

例子:

SELECT LOWER('AaBbCcDd') "AaBbCcDd"
  FROM DUAL;

INITCAP 语法:INITCAP(string)
说明:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用.空格或给字母数字字符进行分隔。不是字母的字符不变动。

例子:

SELECT INITCAP('ryan') UPP
  FROM DUAL;

字符处理函数
函数 说明
CONCAT 语法:CONCAT(string1,string2)
说明:返回string1,并且在后面连接string2。

例子:

SELECT CONCAT('010-','88888888')||'转23' 电话
  FROM DUAL;

SUBSTR 语法:SUBSTR(string,a[,b])
说明:返回从字母为值a开始b个字符长的string的一个子字符串.如果a是0,那么它就被认为从第一个字符开始.如果是正数,返回字 符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回NULL.如果a或b使用了浮点数,那么该数值将在处理进行以前首先被却为一个整数.

例子:

SELECT SUBSTR('13088888888',3,8)
  FROM DUAL;

LENGTH 语法:LENGTH(string)
说明:返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间. 如果string是NULL,返回结果是NULL,而不是0.

例子:

SELECT length('Ryan') from dual;

INSTR 语法:INSTR(string1, string2, [a,b])
说明:得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有找到,那么返回0.位置的计算是相对于string1的开始位置的,不管a和b的取值是多少.

例子:

SELECT INSTR('oracle traning','ra',1,2) instring
  FROM DUAL;

LPAD | RPAD 语法:LPAD(string1,x[,string2]),RPAD(string1,x[,string2])
说明:返回在X字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制后,进行左|右填充。如果string2多于X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行左|右填充。X是使用显示长度可以比字符串的实际长度要长。

例子:

SELECT RPAD('Ryan',10,'*'), LPAD('Ryan',10,'*')
  FROM DUAL;

TRIM 语法:TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1)
说明:
  1. 如果没有指定任何参数则oracle去除c1头尾空格
  2. 如果指定了参数则会去掉c1头部c2
  3. 如果指定了leading参数则会去掉c1头部c2
  4. 如果指定了trailing参数则会去掉c1尾部c2
例子:
  1. 例一:
    SELECT TRIM(' What is tHis') 
      FROM DUAL;
  2. 例二:
    SELECT TRIM('W' FROM 'What is tHis w W') 
      FROM DUAL;
  3. 例三:
    SELECT TRIM(LEADING 'W' FROM 'What is tHis w W') 
      FROM DUAL;
  4. 例四:
    SELECT TRIM(TRAILING 'W' FROM 'What is tHis w W') 
      FROM DUAL;
REPLACE 语法:REPLACE(string,search_str[,replace_str])
说明:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符 串search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。

例子:

SELECT REPLACE('He love you','He','I')
  FROM DUAL; 

三、数字函数

函数 说明
ROUND 语法:ROUND(x[,y])
说明:返回舍入到小数点右边Y位的X值。Y缺省为0,这将X舍入为最接近的整数。如果Y是负数, 那么舍入到小数点左边相应的位上,Y必须为整数。

例句:

SELECT ROUND(55.5), ROUND(-55.4)
  FROM DUAL;

TRUNC 语法:TRUNC(x[,y])
说明:截取值函数,Y缺省为0,这样X被截取成一个整数。如果Y为负数,那么截取到小数点左边相应位置

例句:

SELECT TRUNC(124.1666,-2), TRUNC(124.16666,2)
  FROM DUAL; 

MOD 语法:MOD(被除数,除数)
说明:求余函数,如果除数为0,则返回被除数。

例句:

SELECT MOD(10,3),
       MOD(3,3),
       MOD(2,3)
  FROM DUAL;

四、日期函数

函数 说明
SYSDATE 语法:SYSDATE
说明:返回当前日期和时间。

例句:

SELECT SYSDATE
  FROM DUAL;

MONTHS_BETWEEN 语法:MONTHS_BETWEEN(f,s)
说明:返回两个日期间的 月份

例句:

SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2017-11-12','YYYY-MM-DD'))
  FROM DUAL;

ADD_MONTHS 语法:ADD_MONTHS(d,n)
说明:返回把月份数加到日期上的新日期

例句:

SELECT ADD_MONTHS(SYSDATE,2)
  FROM DUAL;

NEXT_DAY 语法:NEXT_DAY(d, day_of_week)
说明:返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期中的某一天。

例句:

SELECT NEXT_DAY(SYSDATE,1)
  FROM DUAL;

LAST_DAY 语法:LAST_DAY(日期)
说明:本月最后一天

例句:

SELECT LAST_DAY(SYSDATE)
  FROM DUAL;

ROUND 语法:ROUND(date,[fmt])
说明:按指定格式对日期进行四舍五入

例句:

SELECT ROUND(SYSDATE,'YEAR')
  FROM DUAL;

TRUNC 语法:TRUNC(date,[fmt])
说明:返回截取时间部分后的DATE,如果有fmt部分的设置,则返回与该部分最近的日期

例句:

SELECT TRUNC(SYSDATE,'YEAR')
  FROM DUAL;

目录
相关文章
|
Oracle 关系型数据库 MySQL
数据库中设置列/字段自增
介绍数据库中设置列/字段自增(Oracle和Mysql)的实现方式
数据库中设置列/字段自增
|
SQL Oracle 关系型数据库
SQL中数据小数处理(向上取整、向下取整、四舍五入)
SQL中数据小数处理(向上取整、向下取整、四舍五入)
|
Linux
44、数值型数据与字符串的相互转换
数字与字符的相互转换,通常情况下atoi,itoa,但是,这有两个问题,一是: (1)只能是int与char的转换,也就是说,数据最大值应当小于2G。 (2)在linux中,没有itoa。
712 0
|
8天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
7天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
344 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
19天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1331 8