oracle 时间格式转换

Posted

tags:

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

我如何把字符串‘2011-01-01 0000’转化为日期类型2011-01-01 00:00:00
谢谢

select to_char(to_date(\'2011-01-01 000000\',\'yyyy-mm-dd hh24miss\'),\'yyyy-mm-dd hh24:mi:ss\') from dual

顺便说一句,2011-01-01 00:00:00只能是字符串型,要是日期型就是

select to_date(\'2011-01-01 000000\',\'yyyy-mm-dd hh24miss\') from dual

还有,你怎么就四个0,小时是俩0,分钟是俩0,秒的0呢?
参考技术A 楼上说差不多,不过呢,to_date可以默认用0补位日期位以后的时间,如果LZ只是精确到分就不用粘字符了:
select to_date('2011-01-01 0000','YYYY-MM-DD HH24MI') from dual;

select to_char(to_date('2011-01-01 0000','YYYY-MM-DD HH24MI'),'YYYY-MM-DD HH24:MI:SS') from dual;本回答被提问者采纳
参考技术B 你的思路是对的,一定不要在where条件中给你的字段加上函数再去比较,这样不会用到该字段的索引。你可以这样:
receivedtime>= to_date('2008-01-01 11:20:00','yyyy-mm-dd hh24:mi:ss')
参考技术C to_date(‘2011-01-01 000000’,'YYYY-MM-DD ' HH24:MI:SS')=2011-01-01 00:00:00

oracle中的TIMESTAMP和DATA格式可以转换吗?怎么转换呢?

参考技术A SQL> SELECT
  2    TO_TIMESTAMP(TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),  'YYYY-MM-DD HH24:MI:SS') A
  3  FROM 
  4    dual;

A
---------------------------------------------------------------------------
21-11月-13 09.01.09.000000000 上午



这个效果?

追问

格式本来是TIMESTAMP的,要转换成TO_DATE格式的 亲 帮帮忙

追答下面是   DATE 先转换成 char, 再转成 TIMESTAMP, 再转成 char,  再转成  DATE

SQL> SELECT
  2    TO_DATE(
  3      TO_CHAR(
  4        TO_TIMESTAMP(TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),  'YYYY-MM-DD HH24:MI:SS') ,
  5     'YYYY-MM-DD HH24:MI:SS'
  6      ),
  7   'YYYY-MM-DD HH24:MI:SS'
  8    ) a
  9  FROM 
 10    dual;

A
----------
21-11月-13



简单来说, 也就是如果你的某个表的某个列, 数据类型是 TIMESTAMP


那么就是

TO_DATE(   

    TO_CHAR(  那个TIMESTAMP列,    'YYYY-MM-DD HH24:MI:SS'),  

    'YYYY-MM-DD HH24:MI:SS') 

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

ORACLE时间格式转换问题

如何在Oracle中将时间戳转化为日期格式

怎么在Oracle中将时间戳转化为日期格式

oracle 日期格式 格式 转换

oracle SQL语句,日期格式转换

oracle 时间格式转换