我想在oracle中将此日期格式1970-01-01T00:00:00-08:00转换为仅dd/mm/yyyy。但是通过使用下面的查询i';我在转换中出错了
我正在使用这个查询我想在oracle中将此日期格式1970-01-01T00:00:00-08:00转换为仅dd/mm/yyyy。但是通过使用下面的查询i';我在转换中出错了,oracle,date,Oracle,Date,我正在使用这个查询 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:小时必须介于1和12 01849之间。00000-“必须是一小时 在1到12英寸之间 我只需要输出为MM/DD/YY
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:小时必须介于1和12 01849之间。00000-“必须是一小时
在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;
但是,您可以在模式中使用literal“T”
,而不是使用replace:
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),请使用时区时间戳
中的子句
:
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
格式输出,请直接使用时间戳上的字符:
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;