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
oracle decimal类型select trunc(90.125,2) from dual,显⽰90.12,截取到两位⼩数
select trunc(90.125,5) from dual,显⽰90.125,截取到三位⼩数,虽然decimal是5,但是只有三位⼩数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。