2

我从 Twitter API 下载了一堆推文。据我了解,(JSON) created_at 属性以 UTC 给出(由 +0000 表示):

created_at: Fri Feb 18 21:08:38 +0000 2011

在我的脚本中,我通过使用 PHP 的 strtotime 将这些日期转换为 unix 时间戳:

strtotime(Fri Feb 18 21:08:38 +0000 2011) = 1298063318

因此,我现在有一张带有 UTC unix 时间戳的推文表:

id  nyse_date   nyse_time  twitter_timestamp
-------------------------------------------
1   2011-02-18  16:08:38   1298063318

我收集的推文都在谈论纽约证券交易所的股票。纽约证券交易所(显然是在纽约)位于美国东部标准时间,即 UTC - 5 小时(或:18.000 秒)。因此,在 2011 年 2 月 18 日星期五 21:08:38 写在 UTC 时间的推文在 2011 年 2 月 18 日星期五 16:08:38 写在纽约证券交易所时间。因此,(见表格)1298063318 UTC 时间戳被存储转换为 EST (NYSE)日期和时间。

我现在需要对表中的所有(数百万条)推文执行此操作。我可以通过什么查询自动执行此操作?例如,当我想到 UTC 时间戳时,我会感到非常困惑

Fri Feb 18 02:08:38 +0000 2011

在这里,nyse_date 将是 2011-02-17(不是:18)和 nyse_time 21:08:38。

我希望有一些 SQL 优点,因为这让我非常困惑(可能是不必要的,但这是我第一次使用时间戳和时区)

4

1 回答 1

0

读入数据后,更新 twitter_timestamp 字段,如

update mydata set twitter_timestamp = twitter_timestamp - 5 * 3600;
于 2012-04-07T19:10:05.700 回答