我创建了一个insert语句,将当前时间插入到数据类型为
的字段中TIMESTAMP(6)WITH TIME ZONE
insert into(
...
)
values(
9645
,0
,CAST(CURRENT_TIMESTAMP AS TIMESTAMP WITH TIME ZONE)
,user
,CAST(CURRENT_TIMESTAMP AS TIMESTAMP WITH TIME ZONE)
,0
,'APPROVED_P'
,1
,1
)
这很好用,但是有一个问题
我想在文本中也有时区,但我无法找到解决方案。希望有人可以帮助我。
答案 0 :(得分:5)
时区+01:00
与CET
不同。市长差异CET
考虑夏令时,而+01:00
则不会。
如果您需要时区CET
,则必须使用ALTER SESSION SET TIME_ZONE = 'CET';
相应地设置会话时区,或者设置CURRENT_TIMESTAMP AT TIME ZONE 'CET'
而不是CURRENT_TIMESTAMP
运行时应该看到区别:
SELECT SESSIONTIMEZONE,
TO_CHAR(CURRENT_TIMESTAMP, 'yyyy-mm-dd hh24:mi:ss tzh:tzm tzr tzd'),
TO_CHAR((current_TIMESTAMP - INTERVAL '6' MONTH), 'yyyy-mm-dd hh24:mi:ss tzh:tzm tzr tzd')
FROM DUAL;