从GMT转换为UTC

时间:2011-04-07 12:04:40

标签: php sql oracle

在表格中,所有记录都以GMT时间存储。但是通过我的应用程序,我想只显示那些属于时区UTC的记录。即,在网页中,我只想显示UTC时区下的记录。

从GMT转换为UTC。或者查询数据库以获取UTC时区的所有记录。

我非常感谢早日回复。

我在PHP中使用oracle数据库和应用程序。

2 个答案:

答案 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

尝试一下,看看是否有帮助。