Oracle to_date与p.m./a.m

时间:2014-12-03 10:56:37

标签: oracle to-date

我需要将字符串转换为oracle中的Date。

字符串的格式如下:

'08/11/1999 05:45:00 p.m.'

但是最后一个位置可能会在下午或下午发生变化。 我试着做一些像:

to_date('08/11/1999 05:45:00 p.m.', 'dd/mm/yyyy hh:mi:ss a.m./p.m.')

to_date('08/11/1999 05:45:00 p.m.', 'dd/mm/yyyy hh:mi:ss am/pm')

但是给我一个错误ORA-01855:AM / A.M。或PM / P.M。需要......任何想法?

2 个答案:

答案 0 :(得分:6)

试试这个:

to_date
  ( '08/11/1999 05:45:00 p.m.'
  , 'dd/mm/yyyy hh:mi:ss a.m.'
  , 'nls_date_language=american'
  )

好像是“上午”。和“p.m.”而不是“am”和“pm”要求nls_date_language设置为“美国人”。

答案 1 :(得分:1)

转换ampm的时间,只需给出a.m.,如下所示

to_date(UPPER('08/11/1999 05:45:00 p.m.'),'dd/mm/yyyy hh:mi:ss a.m.')
希望这可能有所帮助。请参阅https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm