博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle日期、转换函数
阅读量:5159 次
发布时间:2019-06-13

本文共 3134 字,大约阅读时间需要 10 分钟。

转换函数

日期类型转换成字符类型

select to_char(sysdate) s1, --14-3月 -16       to_char(sysdate, 'yyyy-mm-dd') s2, --2016-03-14       to_char(sysdate, 'yyyy') s3, --2016       to_char(sysdate, 'yyyy-mm-dd hh12:mi:ss') s4, --2016-03-14 10:21:57       to_char(sysdate, 'hh24:mi:ss') s5, --10:21:57       to_char(sysdate, 'DAY') s6 --星期一  from dual;select * from mobile t where to_char(busi_date,'yyyymm')='201511'

将字符类型转换为日期类型

select to_date('20150312','yyyy-mm-dd') from dual; --2015/3/12

返回两个日期间的天数

select floor(sysdate- to_date('20151110','yyyymmdd')) from dual;

返回最接近的日期

select sysdate S1,       round(sysdate) S2, --当前日期时间       round(sysdate,'year') YEAR, --年       round(sysdate,'month') MONTH, --月       round(sysdate,'day') DAY --返回最接近的周日  from dual;

截取最接近的日期

select sysdate S1,       trunc(sysdate) S2, --返回当前日期,无时分秒       trunc(sysdate, 'year') YEAR, --返回当前年的1月1日,无时分秒       trunc(sysdate, 'month') MONTH, --返回当前月的1日,无时分秒       trunc(sysdate, 'day') DAY --返回当前星期的星期天,无时分秒  from dual;

计算时间差,ORACLE时间差是以天数为单位,所以换算成年,月,日

时间差-年

select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual

时间差-月

select ceil(months_between(sysdate,to_date('2015-10-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual

时间差-天

select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual

时间差-时

select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual

时间差-分

select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual

时间差-秒

select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual

更新时间,ORACLE时间加减是以天数为单位,设改变量为n,所以换算成年,月,日;

改变时间-年 n=3,2015-->2018 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n*365,'yyyy-mm-dd hh24:mi:ss') as newTime from dual;

n=3,2015-11-21-->2016-2-21

改变时间-月

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),add_months(sysdate,n)as newTime from dual

改变时间-日

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n,'yyyy-mm-dd hh24:mi:ss') as newTime from dual

改变时间-时

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24,'yyyy-mm-dd hh24:mi:ss') as newTime from dual

改变时间-分

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual

改变时间-秒

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual

查找月的第一天,最后一天,例如当前时间2015/11/21

select trunc(trunc(sysdate,'month')-1,'MONTH') First_Day_Last_Month,    --2015/10/1       trunc(sysdate,'month')-1/86400 Last_Day_Last_Month,    --2015/10/31 23:59:59       trunc(sysdate,'month') First_Day_Cur_Month,    --2015/11/1       last_day(Trunc(sysdate,'month'))+1-1/86400 Last_Day_Cur_Month --2015/11/30 23:59:59  from dual;

数字类型转换成字符类型

select sal,to_char(sal,'$99999') n1,to_char(sal,'$99,999') n2 from emp

转换为数字类型,以数字显示的小时数

select to_number(to_char(sysdate,'hh12')) from dual;
 

转载于:https://www.cnblogs.com/xyhero/p/b035b649906f89fa0581120bd1044278.html

你可能感兴趣的文章
maven package跳过测试
查看>>
不要轻易相信用户
查看>>
javascript
查看>>
python3 aes加解密
查看>>
JSON
查看>>
【LOJ】#2173. 「FJOI2016」建筑师
查看>>
【LOJ】#2549. 「JSOI2018」战争
查看>>
MYSQL逆向工程generatorConfig
查看>>
Microsoft Visual Studio 2010(vs10)安装与使用
查看>>
sitecore系列教程之Sitecore个性化-体验概况概述
查看>>
【洛谷】P1876 开灯
查看>>
本周总结
查看>>
关于“/”应用程序中的服务器错误 之解决方案
查看>>
php编译安装参数说明
查看>>
wcf系列5天速成——第二天 binding的使用(2)
查看>>
Windows推包脚本
查看>>
CSS盒子模型
查看>>
PYthon帮助
查看>>
学习Javascript闭包(Closure)
查看>>
神经网络加速器应用实例:图像分类
查看>>