时间格式为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;
多见于:
由于您希望以格式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;