在表格中,所有记录都以GMT时间存储。但是通过我的应用程序,我想只显示那些属于时区UTC的记录。即,在网页中,我只想显示UTC时区下的记录。
从GMT转换为UTC。或者查询数据库以获取UTC时区的所有记录。
我非常感谢早日回复。
我在PHP中使用oracle数据库和应用程序。
答案 0 :(得分:1)
来自维基百科上的Greenwich Mean Time:
它[GMT]可以说与协调世界时(UTC)相同。
关于转换,您可以添加/删除间隔,但据我所知,Oracle支持带/不带时区的时间戳:
select now() at time zone 'UTC' as utc,
now() at time zone 'EST' as est,
now() at time zone 'Europe/London' as london;
最后一个例子,如果有效,可以让你不用担心夏令时等等。
答案 1 :(得分:0)
我假设您的时间存储为DATE值,所有值都存储为UTC时间,并且您感兴趣的时区是不变的。要将UTC转换为给定时区,请添加时区的偏移量。在这种情况下,由于感兴趣的时区具有负偏移,因此您需要添加相同的负数。因此,以下内容可能有用:
SELECT DATE_FIELD + INTERVAL '-5' HOUR
FROM SOME_TABLE
WHERE <whatever>
FWIW,有些地方转换到当地时间使用非整小时偏移 - 例如,澳大利亚阿德莱德使用距离GMT +9.5小时的偏移量,尼泊尔加德满都使用+5.75小时。
分享并享受。
编辑:鉴于您所描述的数据,您最好的选择可能只是添加会话时区,如下所示:
SELECT your_gmt_timestamp_field AT TIME ZONE SESSIONTIMEZONE
FROM your_table
尝试一下,看看是否有帮助。