2013-02-19 128 views
-2

我正在使用Oracle10g数据库,其中一个表包含一个包含Date DataType的列。我使用下面的查询来获取记录:Oracle - 如何将VARCHAR转换为DATETIME格式

select to_char(START_TIME, 'YYMMDD HH24:MI:SS') from table; 

所以从上面的查询,其结果将是VARCHAR类型。我尝试了to_Date()方法,但结果仅显示DATE。我可以将VARCHAR转换为DATETIME格式吗?结果应该是DATETIME。请帮我解决这个问题。

+0

由于您所说的问题是将字符串转换为日期(在Oracle中与日期时间相同),您需要向我们展示您正在使用的原始数据和格式掩码的样本。除非你不希望我们解决你的问题。 – APC 2013-02-19 09:41:53

回答

1

Oracle的Date类型字段包含日期/时间值,因此将其转换为Datetime没有任何意义(它已经DATETIME)

了解更多关于Oracle日期类型here

0

呀日期数据类型将满足您的需求,但您每次都必须跳过一些环节才能获得准确的时间。绝对使用Timestamp数据类型。

5

Oracle date包含日期和时间,因此您可以将其视为datetime(Oracle中没有数据类型datetime)。如何选择DISPLAYS完全取决于您的客户。默认显示设置由参数NLS_DATE_FORMAT控制。如果您只是在pl/sql块中使用日期,那么只需将它分配到date数据类型中,然后选择该变量而不使用to_char,它将工作得很好,并且包含组件在表中存在的任何时间。

以控制显示,例如使用nls_date_format

SQL> select a from datetest; 
A 
--------- 
19-FEB-13 

SQL> alter session set nls_date_format='YYMMDD HH24:MI:SS'; 

Session altered. 

SQL> select a from datetest; 
A 
--------------- 
130219 07:59:38 

但再次,这仅是用于显示。

+0

它不工作4我... – 2013-02-19 08:58:18

+4

@Avadhani - '它不工作'是令人难以置信的无益。什么不起作用 - 你会得到不同的格式或错误?你在做DazzaL展示的或你自己的变体吗? – 2013-02-19 09:20:40

+0

@AlexPoole作为回答者在回答结束时说 - “但是,这只是为了显示”。我正在研究BIRT报告,我想在IDE中使用查询,并将结果列用于设计报告。你能帮助我吗? – 2013-02-19 10:24:31