oracle之函数-数字,日期,转换,字符串,其他
-----------------------------oracle数据库函数-------------------------------------
---数学函数***
select abs(-1) from dual;
--向上取整
select ceil(2.5)from dual;
select ceil(-2.4)from dual;
select ceil(-2.6)from dual;
--向下取整
select floor(2.5) from dual;
select floor(-2.5) from dual;
select floor(-2.6) from dual;
--四舍五入 注意:4 5之分
select round(2.4)from dual;
select round(2.5)from dual;
select round(-2.4)from dual;
select round(-2.5)from dual;
--幂 2^3 第一个参数是底数 第二个参数是指数
select power(2,3)from dual;
--平方根
select sqrt(3)from dual;
--截断:用于截取小数位数
--第一个参数是目标参数 第二天参数表示保留的小数位数
select trunc(123.456,2) from dual;
select trunc(123.456,0) from dual;
--取模 取余
select mod(10,3) from dual;
---日期转换函数*****
--时间格式
--yyyy-MM-dd HH:mi:ss
--HH默认24小时制 1-23:59:59
--HH12表示12小时制 1-12
--to_char()将日期转换成字符串
select sysdate from dual;
select to_char(sysdate,'yyyy-MM-dd HH:mi:ss') from dual;
--to_date()将字符串转换成日期
select to_date('2017-11-2','yyyy-MM-dd HH:mi:ss') from dual;
select * from ttt_demo01;
insert into ttt_demo01 values(102,'scott',200.99,to_date('1992-11-2','yyyy-MM-dd HH:mi:ss'));
--转换含有数字的字符串
select to_number('1233.456') from dual;
SELECT TO_TIMESTAMP('2016-12-12 12:23:34', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;
--添加了时区
SELECT TO_TIMESTAMP_TZ('2016-12-12 12:23:34 8:00', 'YYYY-MM-DD HH24:MI:SS TZH:TZM') FROM DUAL;
---日期操作函数*****
--截取目标日期里的时间,比如获取当前系统时间的年、月、日
--注意在截取当前系统时间的年月日,可以直接写成 year/month/day from sysdate
--但是hour minute second不可以这么写,需要先转换成字符串,再转换成日期
select extract( year from sysdate) from dual;
select extract( month from sysdate) from dual;
select extract( day from sysdate) from dual;
select extract( second from to_timestamp(to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')) from dual;
select extract(hour from TO_TIMESTAMP('2016-12-12 12:23:34', 'YYYY-MM-DD HH24:MI:SS')) from dual;
select extract(minute from TO_TIMESTAMP('2016-12-12 12:23:34', 'YYYY-MM-DD HH24:MI:SS')) from dual;
select extract(second from TO_TIMESTAMP('2016-12-12 12:23:34', 'YYYY-MM-DD HH24:MI:SS')) from dual;
--计算月差:两个日期之间相差的月数
--注意:计算结果是第一个参数减第二个参数
select months_between(sysdate,to_date('1995-11-11','YYYY-MM-DD HH:mi:ss'))from dual;
select months_between
(to_date('1980-11-1','YYYY-MM-DD HH:mi:ss'),
to_date('1995-11-11','YYYY-MM-DD HH:mi:ss'))from dual;
--添加月数
select add_months(sysdate,2)from dual;
select add_months(to_date('2017-11-1','YYYY-MM-DD HH:mi:ss'),-13)from dual;
--获取当前系统时间以后的时间(星期)
--一周的组合以下周的日期(本周已过的日期或者正在过的日期)
--和本周的日期(本周还未过的日期)加起来
select next_day(sysdate,'Monday') from dual;--下周一
select next_day(sysdate,'Tuesday') from dual;--下周二
select next_day(sysdate,'Wednesday') from dual;--下周三
select next_day(sysdate,'Thursday') from dual;--本周四
select next_day(sysdate,'Friday') from dual;--本周五
select next_day(sysdate,'Saturday') from dual;--本周六
select next_day(sysdate,'Sunday') from dual;--本周日
--每个月的最后一天
select last_day(sysdate)from dual;
select last_day(to_date('2016-2-1','YYYY-MM-DD'))from dual;
--对日期的四舍五入
select round(sysdate,'year') from dual;
select round(sysdate,'month') from dual;
--对年的四舍五入 分界点是6月和7月
select round(to_date('2017-6-1','YYYY-MM-DD'),'year') from dual;
select round(to_date('2017-7-1','YYYY-MM-DD'),'year') from dual;
--对月的四舍五入 分界点是15日和16日
select round(to_date('2017-6-1','YYYY-MM-DD'),'month') from dual;
select round(to_date('2017-6-15','YYYY-MM-DD'),'month') from dual;
select round(to_date('2017-6-16','YYYY-MM-DD'),'month') from dual;
select round(to_date('2016-2-15','YYYY-MM-DD'),'month') from dual;
select round(to_date('2016-2-16','YYYY-MM-DD'),'month') from dual;
--截取日期
--此处的day表示星期几
--获取离当前时间最近的星期日(已经过了的)
select trunc(sysdate,'day')from dual;
--获取年初
select trunc(to_date('2017-5-5','yyyy-MM-dd'),'year')from dual;
select trunc(to_date('2016-5-5','yyyy-MM-dd'),'year')from dual;
---字符串函数***
--将字符串转换为大写
select upper(username) from t_user;
select lower(username)from t_user;
--拼接字符串
select 'abc'||'def' from dual;
select username||password from t_user;
select concat(username,password)from t_user;
--列的宽度、长度(列值的宽度)
select length(username)from t_user;
--填充
--左填充 第一个参数目标参数,第二个参数 填充完之后的字符串长度
--第三个参数 填充的数据
--该例子是用字符b为字符a做填充
select lpad('a',1,'b')from dual;
select lpad('a',2,'b')from dual;
select lpad('a',3,'b')from dual;
select rpad('a',1,'b')from dual;
select rpad('a',2,'b')from dual;
select rpad('a',3,'b')from dual;
select * from t_user;
--去空
--左去空
select ltrim(username)from t_user;
--右去空
select rtrim(username)from t_user;
--去前后空
select trim(username)from t_user;
--检索字符串(查询某字符串所在的索引位置) oracle中字符串索引从1开始
select instr('abcdefg','c')from dual;
select instr('abcdefg','cff')from dual;
select instr('abcdefg','cde')from dual;
--截取字符串
--两个参数的时候 第一个参数表示目标字符串,第二个参数表示从索引位置开始截取到最后
select substr('abcdefg',2) from dual;
--三个参数的时候 第一个参数表示目标字符串,第二个参数表示从索引位置开始截取
--第三个参数表示截取的长度
select substr('abcdefg',2,5) from dual;
--替换
select replace('abcdefg','a','AAA')from dual;
---其他函数
oracle之函数-数字,日期,转换,字符串,其他的更多相关文章
- MySQL日期函数与日期转换格式化函数大全
Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) 1 2 SELECT DAYOFWEEK('201 ...
- oracle系统函数(日期函数)
oracle系统函数(日期函数) 调用日期函数时,首先要明确两个概念,时间戳和日期是不同的,日期中包括年月日但不包括小时分钟秒,时间戳包括年月日小时分钟秒.在oracle中,一般情况下,函数中包含da ...
- 问题:oracle 字符串转换成日期;结果:[oracle] to_date() 与 to_char() 日期和字符串转换
to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. to_char(日期,& ...
- [oracle] to_date() 与 to_char() 日期和字符串转换
to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. to_char(日期,& ...
- 【转】sql to_char 日期转换字符串
1.转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11 ...
- sql to_char 日期转换字符串
1.转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11 ...
- Sql server 日期函数和日期转换
时间函数 SQL Server Date 函数 下面的表格列出了 SQL Server 中最重要的内建日期函数: 函数 描述 GETDATE() 返回当前日期和时间 DATEPART(Type,dat ...
- Oracle - Trunc() 函数截取日期&截取数值
Oracle TRUNC函数可以截取数字和日期类型:截取日期:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; --显示当前时间 s ...
- AngularJS 日期转换字符串
日期转换成字符串的办法有很多种,其中最简单的方法是 使用AngularJS的filter来实现. $filter('date')(date, 'yyyyMM'): $filter('date')(da ...
随机推荐
- [AT2062] ~K Perm Counting
AT2602 , Luogu 求对于 \(n\) 个数的排列 , 有多少种方案满足对于所有的 \(i\) , \(|P_i - i| != K\) , 答案对 \(924844033\) 取模 . \ ...
- AndroidStudio下载安装教程(图文教程)
场景 Android Studio 中文社区: http://www.android-studio.org/ 下载安装包,这里选择64位Windows 等待下载完成. 注: 博客: https://b ...
- [转帖]龙芯:Docker 配置与实践清单
Docker 配置与实践清单 http://www.sohu.com/a/254904706_198222 文章对来官方文档及 Docker Links[1] 中链接内容进行归档整理,包含了日常工作中 ...
- IPv4
1.IPv4分类地址 PC0(192.168.0.1) 和PC1(172.168.0.1)如果要ping通的话需要设置各自网关 PC0 设置IP 和 默认网关=路由器设置IP 2.Gigabit ...
- Spring4学习回顾之路11-AOP
Srping的核心除了之前讲到的IOC/DI之外,还有一个AOP(Aspect Oriented Programming:面向切面编程):通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 ...
- 最长回文 HDU - 3068(马拉车算法)
Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入 ...
- dede添加自定义变量不显示
dedecms前端无法调用自定义变量要怎么解决,登录他的网站后台看了一下,自定义变量已经添加了,也写入了数据库表中,但是就是前台没办法调用出来,后面想想可能是文件权限不够,具体是哪个文件呢?查了相关文 ...
- matplotlib 画图中的basemap安装问题
在我用matplotlib画图是会用到,basemap这个库,但是直接安装却会出现问题: 使用这条安装命令就能够安装功能了: conda install -c conda-forge basemap= ...
- Antd组件库,利用Menu组件模拟一个简单Tree组件
当前工作中,前端的主要技术栈用是vue. 那React怎么办呢?总不至于把他扔在墙角吧! 只能在一些很小的项目上,也只有自己一个前端的时候,悄悄的上React. 当然,React项目UI组件还是最喜欢 ...
- .net Core 图片验证码 基于SkiaSharp实现
public class ImageCaptcha { /// <summary> /// 干扰线的颜色集合 /// </summary> private List<SK ...