TIMESAMPE_HEX_TO_CHAR函数 解决时间16进制可视化问题

 
在11G 提供了一个超过4秒的SQL视图 里面包含了很多必要的信息 同时可以使用

--查看超过4秒语句执行计划
SELECT dbms_sqltune.report_sql_monitor(sql_id => ‘&sql_id‘,report_level => ‘ALL‘,type=>‘TEXT‘) comm FROM dual;

获得个格式美化的东西

可是其中

Binds
========================================================================================================================
| Name | Position |   Type    |                                         Value                                          |
========================================================================================================================
| :1   |        1 | TIMESTAMP | 78720C0D010101                                                                         |
| :2   |        2 | TIMESTAMP | 78720C0D183C3C                                                                         |
| :3   |        3 | NUMBER    | 3                                                                                      |
| :4   |        4 | NUMBER    | 10000978                                                                               |
| :5   |        5 | TIMESTAMP | 78720C0D010101                                                                         |
| :6   |        6 | TIMESTAMP | 78720C0D183C3C                                                                         |
| :7   |        7 | NUMBER    | 10000978                                                                               |
| :8   |        8 | NUMBER    | 2                                                                                      |
| :9   |        9 | NUMBER    | 1000                                                                                   |
| :10  |       10 | NUMBER    | 0                                                                                      |
========================================================================================================================

TIMESTAMP 却是16进制.

如何让它变得萌萌哒呢?

如果简单的16进制换算成10进制 我们可以用WINDOWS的计算器来玩, 可是这是时间啊,ORACLE时间存储规则不一样哦.对了其实也是数字存储方式的

另外还有正负数,小数,指数.

当然我们这里个时间类型 包含 年份 日期 时间 毫秒.  这四个部分算法是不一样的.

你可以SELECT DUMP(SYSDATE) FROM DUAL 出来对比了解下

啰嗦 上函数. 不够这函数解决年月日和时间

create or replace function hex_to_date(hexstr in varchar2) return timestamp as
begin
  if length(hexstr) <> 14 then
    return null;
  end if;

  return to_timestamp(to_char(to_number(substr(hexstr, 1, 2), ‘xx‘) - 100,
                              ‘fm00‘) ||
                      to_char(to_number(substr(hexstr, 3, 2), ‘xx‘) - 100,
                              ‘fm00‘) ||
                      to_char(to_number(substr(hexstr, 5, 2), ‘xx‘),
                              ‘fm00‘) ||
                      to_char(to_number(substr(hexstr, 7, 2), ‘xx‘),
                              ‘fm00‘) ||
                      to_char(to_number(substr(hexstr, 9, 2), ‘xx‘) - 1,
                              ‘fm00‘) ||
                      to_char(to_number(substr(hexstr, 11, 2), ‘xx‘) - 1,
                              ‘fm00‘) ||
                      to_char(to_number(substr(hexstr, 13, 2), ‘xx‘) - 1,
                              ‘fm00‘),
                      ‘yyyymmddhh24miss‘);
end;
时间: 2024-10-27 13:19:59

TIMESAMPE_HEX_TO_CHAR函数 解决时间16进制可视化问题的相关文章

【python】字符串、16进制等数据处理

最近做一个socket server,需要接收组播报文,并进行分析处理.其中涉及的一个问题是,待发送的报文是字符串形式,类似"hello world". 从wireshark截取的报文看,都是16进制数据,以为必须转为该种类型才能发送,需要转换为16进制字符串,类似"0x\a00x\c30x\b4"等. 但后来发现,直接发送数据也是ok的,应该是数据发送时自己会进行转码. 不了解的时候,网上查了下,发现大家推荐用到的模块是binascii,查看help 几个方法如下

C# 校验并转换 16 进制字符串到字节数组

问题 最近在进行硬件上位机开发的时候,经常会遇到将 16 进制字符串转换为 byte[] 的情况,除了这种需求以外,还需要判定一个字符串是否是有效的 16 进制数据. 解决 字符串转 byte[] 的情况可以使用 Convert.ToByte(string) 来解决,16 进制数据的判定则可以结合正则和长度来进行处理. 在这里我是只接受以下两种形式的 16 进制字符串,并对其进行验证和转换. AA 12 34 56 78 06 AA-12-34-56-78-06 下面就是代码: public s

SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0

最近做项目扩展的时候,遇到问题就是将整型转换成指定长度的16进制 刚开始就是直接使用 cast(12 as varbinary(4))但是发现这个不能解决我的问题 所以就上网搜了一下,然后改了改,下面就是函数: 1 Create Function IntToHexLength(@Num int,@HxLength int) 2 returns varchar(16) 3 as 4 begin 5 declare @Mods int,@res varchar(16),@Length int 6 s

Android--字符串和16进制相互转化(解决中文乱码)

import java.io.ByteArrayOutputStream; /** * Created by Administrator on 2016/2/2. * -----------16进制和字符串互转--------- * ------------解决中文乱码问题--------- */ public class StringToSixthUtils { private static String hexString = "0123456789abcdef"; /* * 将字

iOS开发时间戳与时间NSDate,时区的转换,汉字与UTF8,16进制的转换

http://blog.sina.com.cn/s/blog_68661bd80101njdo.html 标签: ios时间戳 ios开发时间戳 ios16进制转中文 ios开发utf8转中文 ios汉字转utf8和16进   //获取当前系统的时间戳+(long)getTimeSp{    long time;    NSDate *fromdate=[NSDate date];    time=(long)[fromdate timeIntervalSince1970];    return

字符串转成16进制函数

/**************************** 字符串转成16进制 作者:不得闲 QQ: 75492895 Email: [email protected] ****************************/ --创建函数(suiyunonghen(不得闲)) Create Function VarCharToHex(@Str Varchar(400)) returns varchar(800) as begin declare @i int,@Asi int,@ModS i

前端笔试题:拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式

(1)拍扁数组 这是一个著名互联网公司今天的前端笔试题:多维数组维数不定,如[2,4,1,[2,3,4,[1,2],5,3],3,8]拍扁为[2,4,1,2,3,4,1,2,5,3,3,8].维数不定,应该要用递归: 答案: function flatten(arr){ var arrLength=arr.length; for(var i=0;i<arrLength;i++){ if(arr[i].constructor==Array){ arr.splice(i,1,flatten(arr[

C# Socket发送接收字节数组和十六16进制之间转换函数

近期在使用远程网络模块的时候, 需要用的Socket发送数据,远程模块指令为16进制. 官方提供的DEMO比较繁琐.不方便新手使用. 下面的转换函数可大大方便新手使用. // 16进制字符串转字节数组 格式为 string sendMessage = "00 01 00 00 00 06 FF 05 00 64 00 00"; private static byte[] HexStrTobyte(string hexString) { hexString = hexString.Rep

自定义函数实现10进制转化为16进制

把结果都列出来,可以提升代码运行速率 #include<stdio.h> char hex_char(unsigned int n) { switch(n) { case 0: return '0'; case 1: return '1'; case 2: return '2'; case 3: return '3'; case 4: return '4'; case 5: return '5'; case 6: return '6'; case 7: return '7'; case 8: