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的主要内容,如果未能解决你的问题,请参考以下文章