我想将这个日期格式1970-01-01T00:00:00-08:00转换为oracle中的dd/mm/yyyy。但是,通过使用下面的查询我现在在转换

得到错误我使用这个查询我想将这个日期格式1970-01-01T00:00:00-08:00转换为oracle中的dd/mm/yyyy。但是,通过使用下面的查询我现在在转换

SELECT CAST(TO_TIMESTAMP_TZ(REPLACE('1970-01-01T00:00:00-08:00', 'T', ''), 

'YYYY-MM-DD HH:MI:SS TZH:TZM') AS DATE) DOB FROM dual;

输出是

ORA-01849:小时必须是00000和12 01849.之间 - “小时必须是 1和12之间的”

我所需要的输出只作为MM/DD/YYYY

回答:

时间格式为24小时,因此修复方法是使用HH24而不是HH

SELECT CAST(TO_TIMESTAMP_TZ(

REPLACE('1970-01-01T00:00:00-08:00', 'T', ''),

'YYYY-MM-DD HH24:MI:SS TZH:TZM') AS DATE) DOB

FROM dual;

,但使用的替换,可以在模式中使用文字"T"

SELECT CAST(

TO_TIMESTAMP_TZ('1970-01-01T00:00:00-08:00',

'YYYY-MM-DD"T"HH24:MI:SS TZH:TZM')

AS DATE) DOB FROM dual;

被告知,中投只是下降的时区信息。如果您需要将时间戳转换为日期在特定的时区(比如+04:00),使用at time zone子句TIMESTAMP WITH TIME ZONE

SELECT CAST(

TO_TIMESTAMP_TZ('1970-01-01T00:00:00-08:00',

'YYYY-MM-DD"T"HH24:MI:SS TZH:TZM')

at time zone '+04:00' AS DATE) DOB FROM dual;

多见于:

  • Oracle Convert TIMESTAMP with Timezone to DATE


由于您希望以格式MM/DD/YYYY输出,请直接在时间戳上使用to_char:

SELECT to_char(

TO_TIMESTAMP_TZ('1970-01-01T00:00:00-08:00',

'YYYY-MM-DD"T"HH24:MI:SS TZH:TZM')

at time zone '+04:00', 'MM/DD/YYYY') DOB FROM dual;

以上是 我想将这个日期格式1970-01-01T00:00:00-08:00转换为oracle中的dd/mm/yyyy。但是,通过使用下面的查询我现在在转换 的全部内容, 来源链接: utcz.com/qa/262353.html

回到顶部