oracle时间格式(to_char、trunc函数的使用)


1、oracle里的系统时间是sysdate,是date类型,执行select sysdate from dual,得到yyyy/mm/dd hh24:mi:ss形式的时间,oracle不区分大小写。dual表是oracle实际存在的表,当sql强制某些数据必须从某表中获得,也就是说必须有from命令就可以使用dual。

      yyyy代表年份,mm代表月份,dd代表天

      hh24代表24小时进制的时,如果没有24就是12小时进制的时,mi代表分钟(minute),不用mm代表分钟是因为mm已代表月份,ss代表秒数

      以2021/9/26 22:29:30时间为例,执行select to_char(sysdate,格式) from dual

      格式:显示值

      yy:21,后两位年

      yyy:021,后三位年

      yyyy:2021,四位年

      mm:09,如果要显示9可以执行 select EXTRACT(MONTH FROM sysdate) as MONTH_OF_YEAR from dual

      mon:9月,英文版显示sep

      (看英文版的时间可以select to_char(sysdate,格式,'NLS_DATE_LANGUAGE = American') from dual,也可以ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN' ,断开数据库连接之后,字符局还原为中文字符集,时间变为中文版)

      month:9月,英文版显示september

      d:1,一周中的第几天,星期天是第一天

      dd:26,当月的第几天

      ddd:269,当年的第几天

      dy:星期日,一周中的星期几,英文显示sun

      day:星期日,一周中的星期几,英文显示Sunday

      hh:10,12小时进制

      hh24:22,24小时进制

      mi:29

      ss:30

      q:3,当年的第几个季度

      w:4,当月的第几周

      ww:39,当年的第几周

      

 2、to_char()可以将日期转换成相应格式的时间格式,类型是char

       如select to_char(sysdate,'yyyymmdd') from dual,得到'20210925'

           select to_char(sysdate,'yyyy-mm-dd') from dual,得到'2021-09-25'

 

3、trunc函数用法

      trunc()函数用于截取时间或数值,返回指定的值

      以2021/9/27 22:34:30时间为例,执行select trunc(sysdate,格式) from dual

      格式:显示值

      yyyy(yyy/yy):2021/1/1,显示当年第一天,截取到年,剩下的月日都默认为1

      mm(mon/month):2021/9/1,显示当月第一天,截取到月,剩下的日默认为1

      dd(ddd):2021/9/27,显示当前年月日,截取到日

      d(dy/day):2021/9/26,显示当前星期的第一天的年月日,如今天是星期一,就显示星期天的日期,因为星期天是这个星期的第一天

      hh:2021/9/27 22:00:00,截取到小时,剩下的分秒默认为0

      mi:2021/9/27 22:34:00,截取到分钟,剩下的秒默认为0

      

      补充:trunc(number,decimals),截取数值,number是指需要截取的数字,decimal指截取的小数位数,默认为0

      select trunc(90.125) from dual,显示90,因为decimal为0

      select trunc(90.125,2) from dual,显示90.12,截取到两位小数

      select trunc(90.125,5) from dual,显示90.125,截取到三位小数,虽然decimal是5,但是只有三位小数

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM