oracle字符串和⽇期的转换
to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。
即按照第⼆个参数的格式解释第⼀个参数。字符串截取日期
to_char(⽇期,"转换格式" ) 即把给定的⽇期按照“转换格式”转换。
转换的格式:
表⽰year的:y 表⽰年的最后⼀位 yy 表⽰年的最后2位 yyy 表⽰年的最后3位 yyyy ⽤4位数表⽰年
表⽰month的:mm ⽤2位数字表⽰⽉;mon ⽤简写形式⽐如11⽉或者nov ;month ⽤全称⽐如11⽉或者november
表⽰day的:dd 表⽰当⽉第⼏天;ddd表⽰当年第⼏天;dy 当周第⼏天简写⽐如星期五或者fri;day当周第⼏天全写
⽐如星期五或者friday。
表⽰hour的:hh 2位数表⽰⼩时 12进制; hh24 2位数表⽰⼩时 24⼩时
表⽰minute的:mi 2位数表⽰分钟
表⽰second的:ss 2位数表⽰秒 60进制
表⽰季度的:q ⼀位数表⽰季度(1-4)
另外还有ww ⽤来表⽰当年第⼏周 w⽤来表⽰当⽉第⼏周。
24⼩时制下的时间范围:00:00:00-23:59:59
12⼩时制下的时间范围:1:00:00-12:59:59
⽐如:
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
⽽如果把上式写作:select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh:mi:ss') from dual,则会报错,因为⼩时hh是12进制,13为⾮法输⼊,不能匹配。
补充:
当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当前时间减去7⼩时的时间 select sysdate - interval '7' hour from dual 当前时间减去7天的时间 select sysdate - interval ’7’ day from dual 当前时间减去7⽉的时间 select sysdate,sysdate - interval '7' month from dual 当前时间减去7年的时间 select sysdate,sysdate - interval '7' year from dual 时间间隔乘以⼀个数字 select
sysdate,sysdate - 8*interval '7' hour from dual
Dual伪列
含义解释:
Dual 是 Oracle中的⼀个实际存在的表,任何⽤户均可读取,常⽤在没有⽬标表的select语句块中。
⽐如,我要获得系统时间,则⽤“select sysdate from dual” 则返回系统当前的时间:2008-11-07 9:32:49,不同系统可能返回⽇期的格式不⼀样。"select user from dual"则返回当前连接的⽤户。如果是"select 1+2 from dual",则返回结果:3
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论