要转换为DATE:
to_date(<text field>, 'DD/MM/YYYY HH:MI:SS AM')
要转换成另一个字符串:
to_char(to_date(<date field>, 'DD/MM/YYYY HH:MI:SS AM'), 'DD/MM/YYYY HH24:MI:SS')
例如(NLS_DATE_FORMAT 设置为 YYYY-MM-DD HH24:MI:SS):
select to_date('09/08/2013 5:13:07 PM', 'DD/MM/YYYY HH:MI:SS AM'),
to_char(to_date('09/08/2013 5:13:07 PM', 'DD/MM/YYYY HH:MI:SS AM'),
'DD/MM/YYYY HH24:MI:SS')
from dual;
TO_DATE('09/08/2013 TO_CHAR(TO_DATE('09
------------------- -------------------
2013-08-09 17:13:07 09/08/2013 17:13:07
如果你只有有时间部分:
select to_date('5:13:07 PM', 'HH:MI:SS AM'),
to_char(to_date('5:13:07 PM', 'HH:MI:SS AM'), 'HH24:MI:SS')
from dual;
TO_DATE('5:13:07PM' TO_CHAR(
------------------- --------
2013-08-01 17:13:07 17:13:07
请注意,如果您不提供值的日期部分,则默认为当月的第一天(在the documentation for datetime literals 中提到;但如果您只有时间,您可能希望将其保留为字符串无论如何。