把Oracle 字符串转换成TIMESTAMP类型的方案


  本文标签:Oracle 字符串

  在计算机的实际应用中将Oracle 字符串转换成TIMESTAMP类型或是Date类型时,我们要用到Oracle的相关函数,在此过程中我们要涉及到很多的字符串的应用,那么接下来就让我们一起了解Oracle 字符串转换的实际应用吧!

  使用Oracle函数:

  TO_TIMESTAMP_TZ(2009-3-9 17:51:23.23 -05:00, YYYY-MM-D HH24:MI:SS.FF TZH:TZM)

  TO_DATE(yourdate,YYYY-MM-D HH24:MI:SS);

  字符串转日期Date

  T0_CHAR(yourdate,YYYY-MM-D HH24:MI:SS);

  日期Date转字符串

  eg:

  update t_fl_flownote set sendtime=TO_TIMESTAMP_TZ(2009-11-30 10:47:16,YYYY-MM-DD HH24:MI:SS)

  转别人的日志

  我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_seconds_precision),可以是 0 to 9,缺省是6  。

  Oracle 字符串转换但是对date类型的运算很简单,有很多函数可用来处理;而两个timestamp的差则是很直观地显示为多少天+多少小时+多少分钟+多少秒+多少小数秒,

  SQL> create table test (T1 TIMESTAMP(6),

  2 T2 TIMESTAMP(6));

  表已创建  。

  SQL> insert into test values(

  2 to_timestamp(2006-01-01 12:10:10.1,yyyy-mm-dd hh24:mi:ss.ff),

  3 to_timestamp(2006-01-01 12:20:10.2,yyyy-mm-dd hh24:mi:ss.ff));

  已创建 1 行  。

  SQL>

  SQL> insert into test values(

  2 to_timestamp(2006-01-01 12:10:10.1,yyyy-mm-dd hh24:mi:ss.ff),

  3 to_timestamp(2006-01-02 12:20:10.2,yyyy-mm-dd hh24:mi:ss.ff));

  已创建 1 行  。

  SQL>

  SQL> insert into test values(

  2 to_timestamp(2006-01-01 12:10:10.1,yyyy-mm-dd hh24:mi:ss.ff),

  3 to_timestamp(2006-01-02 13:40:20.2,yyyy-mm-dd hh24:mi:ss.ff));

  已创建 1 行  。

  SQL> commit;

  提交完成  。

  SQL>

  两个timestamp的差则是很直观地显示为多少天+多少小时+多少分钟+多少秒+多少小数秒:

  SQL> select t2-t1 from test;

  +000000000 00:10:00.100000

  +000000001 00:10:00.100000

  +000000001 01:30:10.100000

  SQL>

  但要简单地转化为某一个精度却比较麻烦,用类似date类型的处理方法是不行的  。如转化为分:

  SQL> select 1440*(t2-t1) from test;

  +000000010 00:02:24.000000000

  +000001450 00:02:24.000000000

  +000001530 04:02:24.000000000

  SQL>

  发现结果根本不是原先想要的,而是在原先的“多少天+多少小时+多少分钟+多少秒+多少小数秒”的每一项都乘以1440再进行进制处理  。以上的相关内容就是对Oracle 字符串转换TIMESTAMP类型或Date类型的介绍,望你有所收获  。