Oracle单值函数,数据库对日期的操作,日期的转换
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单值函数,数据库对日期的操作,日期的转换相关推荐
- jdbc连接Oracle/MySQL数据库进行批量导入操作,如何提高效率???
使用JDBC连接Oracle数据库进行批量数据导入的时候,特别是大批量数据连续插入(百万级或以上),如何提高效率呢? 在JDBC编程接口中有两个方法特别值得注意: (1)void addBatch() ...
- Oracle 10g数据库基础之基本查询语句-中-函数
Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...
- oracle只查询0点数据,Oracle 10g数据库基础之基本查询语句-中-函数
Oracle 10g数据库基础之基本查询语句-中-函数 --资料参考:张烈 张建中<数据库管理员培训讲义> 函数: 使用函数的目的是为了操作数据 将输入的变量处理,返回一个结果. 变量可以 ...
- Oracle分布式数据库的垂直分片实例
目录 前言 0 软件版本 1 启动监听及数据库 1.1 启动数据库示例 1.2 启动监听进程 2 建立表 2.1 在总部(Windows)建立全部员工的基本信息表和总部员工的工资信息表 2.2 在分部 ...
- Oracle关于时间/日期的操作
在oracle中有很多关于日期的函数,如: 1.add_months()用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_mo ...
- 行云管家 V4.7产品新特性-国际化版本、支持Oracle的数据库审计、主机密码自动修改策略 发布日期:2018-11-22...
行云管家在线体验: 行云管家[官网]-领先的云计算管理平台-云安全,堡垒机,自动化运维 行云管家新手有礼活动: 行云管家新手有礼,新用户1元即可体验专业版-优惠券 发布日期:2018-11-22 ...
- 数据库 日期格式操作
sql server: 日期转字符串-日期 select CONVERT(varchar(100), GETDATE(), 23) from RegionRealtimeData 日期转字符串-全 s ...
- postgre数据库字符串函数和日期函数操作小记
目录 前言 字符串操作 1.字符串连接符 2.定位(查找字符串位置) 2.1.定位字符串位置 3.截取字符串 3.1.截取字符串 3.2.正则匹配截取字符串 4.计算字符串md5散列 5.计算字符串中 ...
- [数据库] MySQL基础知识之日期判断及添加排序序号
这篇文章主要记录MySQL中遇到的几个基础问题,希望文章对你有所帮助!包括: 1.日期类型的判断 2.decode函数的替代方法 3.查询语句中添加一个 ...
最新文章
- 从配置说tomcat和nginx调优
- (转载)聊聊Git原理
- 第6次全天课笔记-20180819
- 十、【栈和队列】队列
- c语言求泰勒正弦公式,用泰勒公式求sin(x)的近似值
- JAVA--自制斐波那契数列输出
- JAVA中的内部类与C++内部类的区别
- 信息学奥赛一本通 1848:【07NOIP提高组】字符串的展开 | OpenJudge NOI 1.7 35:字符串的展开 | 洛谷 P1098 [NOIP2007 提高组] 字符串的展开
- 快速排序伪代码_归并排序之入门到quot;放弃quot;
- jquery validate 笔记
- matlab 灰度化原理公式,MATLAB的Sobel图像边缘灰度值检测算法的详细公式和实现资料概述...
- matlab 深度学习环境配置
- Qt数据库应用3-数据打印到pdf
- 计算某个日期到今天的天数
- python泰坦尼克号案例分析_利用python对泰坦尼克号数据集进行分析
- oop部分,构造方法,this的使用。
- 树莓派开发ADC芯片CS1237(C语言和python库开发)
- 【微信小程序】云函数使用excel-export导出excel
- 控制系统仿真与CAD-薛定宇-第四章matlab学习笔记
- LeetCode43------两数相乘