1、转换函数
与date操作关系最大的就是两个转换函数:to_date(),to_char()
to_date() 作用:将字符类型按一定格式转化为日期类型:
具体用法:
to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。
如:to_date(''2004-11-27 13:34:43'', ''yyyy-mm-dd hh24:mi:ss'') 将得到具体的时间
例子如下:
这个例子中我查询了表中存储时间的两个字段,这两个字段都是varchar2数据类型,执行的结果如图所示
20160726这种表示时间的方式不直观,我前台页面需要的时间展示格式是2016-07-26的格式,所以我需要用to_date()函数来进行转换
转换如下:
我们发现用to_date( x.jlgxsj,'yyyy-mm-dd' )之后字段转化为之后的格式为2016/7/26这种用'/'连接的格式,不是我们想要的效果,这是为什么呢?
我百度了一下发现:
原来因为我to_date了之后这个字段就成了日期类型
日期类型的格式是由一个系统参数决定的
alter session set nls_date_format = ‘yyyy-dd-mm’;你自己需要改一下就好了
但是如果你不想改系统从参数你也可以用下面这种方式来转化成你想要的格式这里就需要借助to_char()函数了:
从执行结果我们很直观的都可以看见,现在已经转化成了我们想要的日期格式。 下面就是执行的sql语句: select to_char( to_date(x.jlgxsj,'yyyymmdd'),'yyyy-mm-dd' )as jlgxsj ,x.ywsj FROM CEN_INTERFACE.TB_SJL_MX x
其中转化的部分语句:可以看出我们先使用to_date()将字段转化为日期类型,在通过to_char()将转化之后的日期类型转化为我们需要的类型,当然转化之后我们获取的这个值:2016-07-26是个字符串类型。to_char( to_date(x.jlgxsj,'yyyymmdd'),'yyyy-mm-dd' )
二、总结
oracle 日期格式
(1)to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。
是将字符串转化为日期(DATE)格式,而且转化之后的格式与orcal系统日期参数有关
(2)to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。
是将日期格式转化为字符串格式