oracle varchar2转timestamp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle varchar2转timestamp相关的知识,希望对你有一定的参考价值。

有一个字段类型是varchar2(18 char),存放的是时间,比如:20121018052334.720, 怎么转换成timestamp格式?

使用oracle内置函数to_timestamp就可以了
select to_timestamp(\'1700\',\'HH24MI\') from dual
1、字符型转成timestamp代码如下:

select to_timestamp(\'01-10月-08 07.46.41.000000000 上午\',\'dd-MON-yy hh:mi:ss.ff AM\')
from dual;

2、timestamp转成date型
代码如下:

select cast(to_timestamp(\'01-10月-08 07.46.41.000000000 上午\',\'dd-MON-yy hh:mi:ss.ff AM\') as date) timestamp_to_date
from dual;

3、date型转成timestamp
代码如下:

select cast(sysdate as timestamp) date_to_timestamp
from dual;

4、获取timestamp格式的系统时间
代码如下:

select systimestamp from dual;

5、两date的日期相减得出的是天数,而两timestamp的日期相减得出的是完整的年月日时分秒小数秒
代码如下:

select systimestamp-systimestamp from dual;
select sysdate-sysdate from dual;

注:所以,timestamp要算出两日期间隔了多少秒,要用函数转换一下。
6、to_char函数支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型。
7、timestamp只支持秒的小数点后面六位。
代码如下:

select to_char(systimestamp, \'yyyymmdd hh24:mi:ssxff6\') FROM dual;

注:ssxff6也可以为ssxff7、ssxff8、ssxff9等,但只到6有效。
8、获取系统时间的语句:
代码如下:

SELECT sysdate,systimestamp,to_char(systimestamp, \'yyyymmdd hh24:mi:ssxff6\') FROM dual;
参考技术A select to_timestamp('20121018052334.720', 'yyyymmddhh24miss.ff3') from dual;
ff后面的数字代表你想保留几位本回答被提问者和网友采纳
参考技术B SELECT TO_TIMESTAMP ('20121018052334.720', 'yyyymmddhh24miss.FF') FROM DUAL;

FF=Fractional seconds
参考技术C 先转为to_date
然后在转timestamp就行了。
直接转不行。追问

我用select to_date('20121018052334', 'yyyymmddhhmiss') from dual;可以转换, 但是有后边的毫秒时候就不知道怎么转了,求帮助。

以上是关于oracle varchar2转timestamp的主要内容,如果未能解决你的问题,请参考以下文章

oracle中clob可以转成varchar2吗

oracle转Mysql中,varchar2(10)和number应该转换为什么类型? (转)

Oracle怎样把varchar2型转成number型

oracle varchar2 为啥改不成clob

Oracle的CLOB大数据字段类型(转)

Oracle怎样把varchar2型转成number型