oracle日期、转换函数
转换函数
日期类型转换成字符类型
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;
oracle日期、转换函数的更多相关文章
- Oracle日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
- [转]ORACLE日期时间函数大全
本文转自:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间: ::2 ...
- [转载]ORACLE日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- oracle 日期时间函数
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- ORACLE日期时间函数
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- Oracle 大小写转换函数
Oracle 大小写转换函数 转大写UPPER 转小写LOWER 测试: select UPPER('Test') as u from dual; select LOWER('Test') as l ...
- Mysql日期转换函数、时间转换函数
Mysql日期转换函数.时间转换函数 一.MySQL 获得当前日期时间 函数 1,获得当前日期+时间(date + time)函数:now(): select now(); 结果: :: 2,获得当前 ...
- oracle行列转换函数的使用
oracle 10g wmsys.wm_concat行列转换函数的使用: 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行 ...
- oracle日期时间函数总结
常常写 sql 的同学应该会接触到一些 oracle 的日期时间函数, 比如: 財务软件或者人力资源软件须要依照每年, 每季度, 每月, 甚至每一个星期来进行统计. 今天闲来没事, 特意从网上整理了一 ...
- Oracle(转换函数)
在数据库中主要使用数据类型:字符,数字,日期(时间戳),所以这三种数据类型之间需要实现转换操作. 常用转换函数: 3.1.TO_CHAR()函数 将数据类型变为字符串. 日期格式化标记: 在TO_CH ...
随机推荐
- Java结束线程的三种方法(爱奇艺面试)
线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的.例如在程序中使用线程进行So ...
- Mysql 间隙锁原理,以及Repeatable Read隔离级别下可以防止幻读原理(百度)
Mysql知识实在太丰富了,前几天百度的面试官问我MySql在Repeatable Read下面是否会有幻读出现,我说按照事务的特性当然会有, 但是面试官却说 Mysql 在Repeatable Re ...
- Dog test1 = new Dog()的解释
- ef 更新数据库
//一:数据库不存在时重新创建数据库 Database.SetInitializer<testContext>(new CreateDatabaseIfNotExists<testC ...
- Codeforces Round #442 (Div. 2)A,B,C,D,E(STL,dp,贪心,bfs,dfs序+线段树)
A. Alex and broken contest time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- POJ 1062 昂贵的聘礼(最短路中等题)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 51879 Accepted: 15584 Descripti ...
- C源程序怎么变成可执行文件
本文所有内容都是来自网上的转载,文末有转载链接. 电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础.计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那, ...
- 前端学习 -- Css -- 选择器的优先级
当使用不同的选择器,选中同一个元素时并且设置相同的样式时,这时样式之间产生了冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)决定优先级高的优先显示. 优先级的规则 内联样式 , 优先级 ...
- c++并发编程之创建线程
以boost为例.boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象: (2)explicit thread(const boost::functi ...
- 界面编程之QT窗口系统20180726
/*******************************************************************************************/ 一.坐标系统 ...