字符串转换to_char()、to_date()及trunc()的用法;

一、to_char()

1.基本语法

to_char(value,'format') value是待转化的值,'format' 是转化后的 pattern

(1)日期格式转化

select to_char(sysdate,'yyyy') from dual;-------执行结果:2018
select to_char(sysdate,'yyyy-mm-dd') from dual;-----执行结果:2018-06-14
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;-----执行结果:2018-06-14 15:49:02
select to_char(sysdate,'d') from dual;------执行结果:5,当前是本周的第5天(周日是第一天)
select to_char(sysdate,'iw') from dual;-----执行结果:24,当前是本年的第24周

(2)处理数字

select to_char(88877) from dual;------执行结果:88877
select to_char(1234567890,'099999999999999')  from dual;------执行结果:000001234567890,系统会自动补全位数
select to_char(12345678,'999,999,999,999')  from dual;--------执行结果:12,345,678,系统会自动补全位数
select to_char(1234567890,'999,999,999,999.9999')  from dual;-----执行结果:1,234,567,890.0000,系统会自动补全位数

(3)to_char(salary,'$99,99');

select TO_CHAR(123,'$99,999.9') from dual;

(4)用于进制转换:将10进制转换为16进制;

select to_char(4567,'xxxx') from dual;
select to_char(123,'xxx') from dual;

二、to_date()

to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配。

select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual   //显示:08-11-07 13:22:42
select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss') from dual //显示:2005-12-25 13:25:59

三、trunc()

(1)处理日期

    语法格式:TRUNC(date[,fmt])

  其中:date 一个日期值;fmt 日期格式。

    该日期将按指定的日期格式截取;忽略它则由最近的日期截取。

   select trunc(sysdate) from dual;--14-6月 -18,返回当前时间
   select trunc(sysdate,'yy') from dual;--01-1月 -18,返回当年第一天
   select trunc(sysdate,'mm') from dual;--01-6月 -18,返回当月的第一天
   select trunc(sysdate,'d') from dual;--10-6月 -18,返回当前星期的第一天,即星期天
   select trunc(sysdate,'dd') from dual;--14-6月 -18,返回当前日期,今天是2018-06-14
   select trunc(sysdate,'iw') from dual;--11-6月 -18,返回当前星期的第一天,即星期一
(2)处理number型数字

    语法格式:TRUNC(number[,decimals])

    其中: number 待做截取处理的数值;decimals 指明需保留小数点后面的位数,可选项,忽略它则截去所有的小数部分。

    注意:截取时并不对数据进行四舍五入

    select trunc(123.567,2) from dual;--123.56,将小数点右边指定位数后面的截去;
    select trunc(123.567,-2) from dual;--100,第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记;
    select trunc(123.567) from dual;--123,默认截去小数点后面的部分;

四、总结to_char、to_date和trunc在日期上的作用

(1)to_char和to_date是日期格式的转换函数,其作用就是将目标日期以我们想要的格式显示出来;

         举例说明:以当前日期为例(sydate)

select to_char(sysdate,'yyyy-mm-dd')  from dual;

          只是将当前日期的格式由‘date类型’转化为‘字符类型’,结果本身没发生变化;

select to_date('2018-06-15','yyyy-mm-dd')  from dual;

          只是将‘字符类型’转化为‘date类型’,‘结果本身没有发生变化;

(2)trunc是根据目标日期截取我们想要的日期

          举例说明:以当前日期为例(sydate)

select trunc(sysdate,'iw') from dual;--11-6月 -18,返回当前星期的第一天,即星期一
        根据当前日期计算出本周第一天然后提取显示,显示结果发生变化;




  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值