3

我需要在 oracle 中将字符串转换为日期。

字符串的格式是这样的:

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

但是最后一个位置可以改变 pm 或者我是否尝试做一些类似的事情:

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/AM or PM/PM required... 知道吗?

4

2 回答 2

9

尝试这个:

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

似乎需要将“am”和“pm”而不是“am”和“pm”nls_date_language设置为“american”。

于 2014-12-03T11:19:01.950 回答
1

将时间转换为amand pma.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

于 2014-12-03T11:08:06.540 回答