Oracle单值函数

单值函数主要是⽤来处理一个列中多⾏数据。例如将某列的字⺟数据全部转换成⼤写等等之类的。

一.哑表

在oracle中存在着⼀张虚拟的表,这个表只有⼀条记录。这个表叫做哑表(dual)。主要是⽤来校验 select 数据。这个表⾥⾯的唯一条数据就是查询出来的数据。

例子:查看1+1的结果 select 1+1 from dual;

二.字符函数

可以操作表中的列,也可以操作普通字符串

lower返回转换成⼩写的字符串 upper转换为⼤写的字符串 initcap⾸字⺟⼤写的字符串 concat连接字符串(⽀持各种类型的关系型数据库) concat的功能类似于前⾯的 ||如果想连接多个,需要嵌套使⽤; 例子: 1 select lower('HELLO') from dual; 1 select lower(last_name) from s_emp; 1 select upper('world') from dual; 1 select upper(last_name) from s_emp; 1 select initcap('hELLO') from dual; 1 select upper(userid) from s_emp; select concat('hello','world') msg from dual; select 'hello' || 'world' from dual; select concat('⻢⽼师',concat('真的','是吗')) from dual; select '⻢⽼师' || '真的' || '是吗' from dual;

substr返回截取的字符串,substr(操作项,start,len) 截取字符串 截取'hello'字符串,从第 2 个字符开始(包含第⼆个字符),截取后⾯连续的 3 个字符1 select substr('hello',2,3) from dual;

length返回字符串的⻓度,获得'world'字符串的⻓度 1 select length('world') from dual;

nvl(arg1,arg2) 如果参数为空,返回参数2 nvl2(arg1,agr2,agr3) 如果参数为空,返回参数3,不为空返回参数2 nullif(arg1,arg2) 如果参数1=参数2 那么就返回null,否则返回参数1

10.5 函数嵌套使⽤

查询 名字⾸字⺟⼤写的员⼯信息select * from s_emp where substr(last_name,1,1) = substr(initcap(last_name),1,1);

查询 最后⼀个字⺟为⼩写的员⼯信息select * from s_emp where substr(last_name,length(last_name),1) =substr(lower(last_name),length(last_name),1);

查询 员⼯⾸字⺟为 N 的员⼯信息

select * from s_emp where substr(last_name,1,1) = 'N';

10.6 数字函数

round四舍五⼊ round(arg1,arg2) arg1 :表示要进⾏四舍五⼊操作的数字 arg2 :第⼆个参数表示保留到哪⼀位,为0时表示取整数,为负数时表示往小数点前面走几位

trunc截取到某⼀位 trunc(arg1,arg2) 和 round 的⽤法⼀样,但是 trunc 只舍去不进位

mod取余 mod(arg1,arg2) 第⼀个参数表示要进⾏取余操作的数字 第⼆个参数表示参数 1 和谁取余

10.7 ⽇期函数

当前时间(sysdate) 查询系统当前⽇期 可以对⽇期进⾏加减运算,但是值得注意的是计算单位是 天 显示时间:明天的这个时候 select sysdate + 1 from dual; 显示时间:昨天的这个时候 select sysdate - 1 from dual; 显示时间:1 ⼩时之后的这个⽇期 select sysdate + 1/24 from dual;

months_between 俩个⽇期之间相差多少个⽉【单位是⽉】

30 天之后和现在相差多少个⽉ select months_between(sysdate+30,sysdate) from dual;

如果不满⼀个⽉则返回⼀个⼩数

add_months 返回⼀个⽇期数据:表示⼀个时间点,往后推 x ⽉的⽇期 当前时间往前推 4 个⽉ 1 select add_months(sysdate,-4) from dual;

next_day 返回⽇期:表示下⼀个星期⼏在哪⼀天 离当前时间最近的下⼀个星期 5 是哪⼀个天

1 select next_day(sysdate,'星期五') from dual;

last_day 返回⽇期:表示指定⽉份的最后⼀天 select last_day('3-5⽉-2015') from dual;

round 对⽇期进四舍五⼊,返回操作后的⽇期数据 把当前⽇期四舍五⼊到⽉ 注意: 15 ⽇不进,16⽇进位

select round(sysdate,'MONTH') from dual;

把当前⽇期四舍五⼊到年 注意:6 ⽉舍弃,7 ⽉进位 select round(sysdate,'YEAR') from dual;

trunc 对⽇期进⾏截取 和 round 类似,但是只舍弃不进位

select trunc(sysdate,'MONTH') from dual; select trunc(sysdate,'YEAR') from dual;

10.8 转换函数

to_char 把⽇期或者数字转换为字符 to_char (arg1,arg2) 把⽇期转换为字符 arg 1:⽇期 arg2:⽇期格式 把当前⽇期按照指定格式转换为字符串 select to_char(sysdate,'yyyy-mm-DD') from dual;

格式 yyyy 四位数的年份 rrrr 四位数的年份 yy 两位数的年份 rr 两位数的年份 mm 两位数的⽉份(数字) D ⼀周的星期⼏ DD ⼀⽉的第⼏天 DDD ⼀年的第⼏天 YEAR 英⽂的年份 MONTH 英⽂全称的⽉份 mon 英⽂简写的⽉份 ddsp 英⽂的第⼏天(⼀个⽉的) ddspth 英⽂序列数的第⼏天(⼀个⽉的) DAY 全英⽂的星期 DY 简写的英⽂星期 hh[12|24] ⼩时 默认 12 进制 mi 分钟 ss 秒 am 上下午

to_number把字符转换为数

select to_number('0100') from dual;

to_date把字符转换为⽇期 将2016-1-1转换成⽇期

select to_date(‘2016-1-1’,’yyyy-mm-dd') from dual;

Oracle单值函数,数据库对日期的操作,日期的转换相关推荐

  1. jdbc连接Oracle/MySQL数据库进行批量导入操作,如何提高效率???

    使用JDBC连接Oracle数据库进行批量数据导入的时候,特别是大批量数据连续插入(百万级或以上),如何提高效率呢? 在JDBC编程接口中有两个方法特别值得注意: (1)void addBatch() ...

  2. Oracle 10g数据库基础之基本查询语句-中-函数

    Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...

  3. oracle只查询0点数据,Oracle 10g数据库基础之基本查询语句-中-函数

    Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...

  4. Oracle分布式数据库的垂直分片实例

    目录 前言 0 软件版本 1 启动监听及数据库 1.1 启动数据库示例 1.2 启动监听进程 2 建立表 2.1 在总部(Windows)建立全部员工的基本信息表和总部员工的工资信息表 2.2 在分部 ...

  5. Oracle关于时间/日期的操作

    在oracle中有很多关于日期的函数,如: 1.add_months()用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_mo ...

  6. 行云管家 V4.7产品新特性-国际化版本、支持Oracle的数据库审计、主机密码自动修改策略 发布日期:2018-11-22...

    行云管家在线体验: 行云管家[官网]-领先的云计算管理平台-云安全,堡垒机,自动化运维​ 行云管家新手有礼活动: 行云管家新手有礼,新用户1元即可体验专业版-优惠券​ 发布日期:2018-11-22 ...

  7. 数据库 日期格式操作

    sql server: 日期转字符串-日期 select CONVERT(varchar(100), GETDATE(), 23) from RegionRealtimeData 日期转字符串-全 s ...

  8. postgre数据库字符串函数和日期函数操作小记

    目录 前言 字符串操作 1.字符串连接符 2.定位(查找字符串位置) 2.1.定位字符串位置 3.截取字符串 3.1.截取字符串 3.2.正则匹配截取字符串 4.计算字符串md5散列 5.计算字符串中 ...

  9. [数据库] MySQL基础知识之日期判断及添加排序序号

    这篇文章主要记录MySQL中遇到的几个基础问题,希望文章对你有所帮助!包括:         1.日期类型的判断         2.decode函数的替代方法         3.查询语句中添加一个 ...

最新文章

  1. 从配置说tomcat和nginx调优
  2. (转载)聊聊Git原理
  3. 第6次全天课笔记-20180819
  4. 十、【栈和队列】队列
  5. c语言求泰勒正弦公式,用泰勒公式求sin(x)的近似值
  6. JAVA--自制斐波那契数列输出
  7. JAVA中的内部类与C++内部类的区别
  8. 信息学奥赛一本通 1848:【07NOIP提高组】字符串的展开 | OpenJudge NOI 1.7 35:字符串的展开 | 洛谷 P1098 [NOIP2007 提高组] 字符串的展开
  9. 快速排序伪代码_归并排序之入门到quot;放弃quot;
  10. jquery validate 笔记
  11. matlab 灰度化原理公式,MATLAB的Sobel图像边缘灰度值检测算法的详细公式和实现资料概述...
  12. matlab 深度学习环境配置
  13. Qt数据库应用3-数据打印到pdf
  14. 计算某个日期到今天的天数
  15. python泰坦尼克号案例分析_利用python对泰坦尼克号数据集进行分析
  16. oop部分,构造方法,this的使用。
  17. 树莓派开发ADC芯片CS1237(C语言和python库开发)
  18. 【微信小程序】云函数使用excel-export导出excel
  19. 控制系统仿真与CAD-薛定宇-第四章matlab学习笔记
  20. LeetCode43------两数相乘

热门文章

  1. 智能补全模糊查询select2的下拉选择框使用
  2. 中印软件产业博弈 一边是白领一边却是民工
  3. 解决kswapd0 CPU占用率高的问题
  4. Centos安装Docker详细步骤,Debian安装Docker详细步骤
  5. Java设计原则——单一职责原则
  6. 华工计算机实验班保研率,华南理工大学2021年保送1197名优秀应届本科毕业生免试读研...
  7. 阿里云code用户名和密码的坑
  8. 阿里云ECS建网站(建站)超详细全套完整图文教程! [
  9. 肿瘤NGS测序行业背景介绍
  10. GAEA创作地形 个人小结