Oracle查询之date类型数据格式化
今天在做⼀个数据查询的时候接触到了物化视图,第⼀次使⽤,进⾏了⼀番研究,这⾥不做描述,物化视图中同事写了这样⼀⾏代码:to_date(concat(to_char( sysdate+1,'dd-mm-yyyy'),'00:30:00'),'dd-mm-yyyy hh24:mi:ss')
⽬标是取当前时间往后⼀天的凌晨00:30分,整理下⽬前我⽤过或接触过的date字段相关的写法,
⽬标:取当前⽇期的00:30分。
1、select to_date(to_char(sysdate,'yyyy-mm-dd')||'00:30','yyyy-mm-dd hh24:mi') from dual;
2、select to_date(concat(to_char( sysdate,'yyyy-mm-dd'),'00:30:00'),'yyyy-mm-dd hh24:mi:ss') from dual;
3、select trunc(sysdate)+(1/24/60)*30 from dual;
上⾯总共三种写法,前两种原理⼀样,都是发⽇期格式化成字符串,然后添加00:30后再转为⽇期格式,后⼀种是直接对⽇期格式进⾏加减。
总结:1、2可以更⽅便的设置查询的条件,⽽3需要计算,但1、2涉及两次格式转换,数据量较⼤时耗时会增加,效率上3⽐1、2⾼。
oracle 时间转换在少量数据查询时⽤那个都差不多,数据量⽐较⼤查询较慢的时候可以优先考虑3.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论