我想将这个日期格式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