从varchar转换为datetime以进行排序

时间:2018-01-04 08:33:48

标签: sql oracle oracle11g

我有varchar数据类型的列。其中包含以下格式的日期:

04-JAN-18 11.23.32.195734 AM +05:30

我需要根据最新的时间戳对行进行排序。要使用的功能是什么?

SELECT *
FROM ent_organizations
order by TO_TIMESTAMP(updatedtimestamp,'YYYY-MON-DD HH.MI.SS.FF') desc
  

ORA-01830:日期格式图片在转换整个输入之前结束   串   01830. 00000 - “日期格式图片在转换整个输入字符串之前结束”   *原因:
  *操作:

1 个答案:

答案 0 :(得分:2)

将字符串转换为TIMESTAMP,如下所示:

TO_TIMESTAMP_TZ(updatedtimestamp,'DD-MON-YY HH.MI.SS.FF AM TZH:TZM', 'NLS_DATE_LANGUAGE = american') 

如果您使用它进行排序,那么它将基于UTC时间,而不是本地时间值。