我正在尝试从UTC时区转换为GMT时区。
我在查询下面运行此命令,并收到ORA错误。
select NEW_TIME(SYSDATE, 'UTC', 'GMT') from dual;
错误是
Error starting at line : 1 in command -
select NEW_TIME(SYSDATE, 'UTC', 'GMT') from dual
Error report -
ORA-01857: not a valid time zone
我用Google搜索,发现NEW_TIME函数不接受UTC时区。
那么,您能建议我替代方法/从UTC转换为GMT的任何方式吗?
答案 0 :(得分:1)
UTC
也称为GMT
,NEW_TIME
已接受后者。因此,您想要的等同于:
SELECT NEW_TIME(SYSDATE, 'GMT', 'GMT')
FROM dual;
对NEW_TIME
的呼叫毫无意义。检查here以获得可接受的时区代码列表。
答案 1 :(得分:0)
使用FROM_TZ
将没有时区的时间戳转换为有时区的时间戳(即UTC
),然后使用AT TIME ZONE 'GMT'
将其从第一个时区转换为{ {1}}时区。您需要在各个地方使用GMT
,因为CAST
期望使用FROM_TZ
而不是TIMESTAMP
,然后您需要在以下位置回退到DATE
最后(假设您不希望使用DATE
值):
TIMESTAMP
输出:
| GMT_TIME | | :------------------ | | 2019-04-10T14:05:37 |
db <>提琴here