sql monitor中timestamp变量转换可识别格式


工作中使用SQL MONITOR分析变量时,若有TIMESTAMP格式,会出现“ 78740616010101 ” 无法识别的数字,通过下面方法可转换能识别的时间格式。

Binds
========================================================================================================================
| Name | Position |     Type     |                                        Value                                        |
========================================================================================================================
| :1   |        1 | NUMBER       | 42599677                                                                            |
| :2   |        2 | TIMESTAMP    | 78740616010101                                                                      |
| :3   |        3 | TIMESTAMP    | 78740616010101                                                                      |
| :4   |        4 | VARCHAR2(32) | 360                                                                                 |
| :5   |        5 | NUMBER       | 10000                                                                               |
========================================================================================================================

可通过下面两种方法解析变量,转换可识别的时间

方法一:

  1.  select to_timestamp(
  2.    to_char( to_number( substr( p_str, 1, 2 ), 'xx' ) - 100, 'fm00' ) ||
  3.    to_char( to_number( substr( p_str, 3, 2 ), 'xx' ) - 100, 'fm00' ) ||
  4.    to_char( to_number( substr( p_str, 5, 2 ), 'xx' ), 'fm00' ) ||
  5.    to_char( to_number( substr( p_str, 7, 2 ), 'xx' ), 'fm00' ) ||
  6.    to_char( to_number( substr( p_str,9, 2 ), 'xx' )-1, 'fm00' ) ||
  7.    to_char( to_number( substr( p_str,11, 2 ), 'xx' )-1, 'fm00' ) ||
  8.    to_char( to_number( substr( p_str,13, 2 ), 'xx' )-1, 'fm00' ), 'yyyymmddhh24miss' )
  9.   from (select '&raw_timestamp' p_str from dual)
  10. Enter value for raw_timestamp: 787406160101
  11. old 9: from (select '&raw_timestamp' p_str from dual)
  12. new 9: from (select '787406160101' p_str from dual)

  13. TO_TIMESTAMP(TO_CHAR(TO_NUMBER(SUBSTR(P_STR,1,2),'XX')-100,'FM00')||TO_CHAR
  14. ---------------------------------------------------------------------------
  15. 22-JUN-16 12.00.00.000000000 AM

方法二:

  1. set serverout on
  2. declare
  3.     d1 date;
  4. begin
  5.     dbms_stats.convert_raw_value(hextoraw('78740616010101'),d1);
  6.     dbms_output.put_line('DATE: '||to_char(d1,'yyyy-mm-dd hh24:mi:ss'));
  7. end;
  8. DATE: 2016-06-22 00:00:00






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17086096/viewspace-2121037/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17086096/viewspace-2121037/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值