我正在使用Oracle10g
数据库,其中一个表包含一个Date
DataType的列。我使用以下查询来获取记录:
select to_char(START_TIME, 'YYMMDD HH24:MI:SS') from table;
因此,从上面的查询中,结果将是VARCHAR
类型。我尝试了to_Date()
方法,但只显示了DATE
。我可以将VARCHAR
转换为DATETIME
格式吗?结果应为DATETIME
类型。请帮我解决这个问题。
答案 0 :(得分:5)
Oracle date
包含日期和时间,因此您可以将其视为datetime
(Oracle中没有datetime
的数据类型)。如何选择显示取决于您的客户完全取决于它。默认显示设置由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
但同样,这只是为了展示。
答案 1 :(得分:1)
Oracle的Date
类型字段包含日期/时间值,因此将其转换为Datetime
没有任何意义(它已经是日期时间)
详细了解oracle日期类型here
答案 2 :(得分:0)
是的Date数据类型将满足您的需求,但您必须每次跳过一些箍以获得确切的时间。绝对使用Timestamp数据类型。