使用SQL将UTC时间戳转换为EST日期和时间

时间:2012-04-07 18:52:25

标签: php mysql sql twitter timestamp

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

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

在我的脚本中,我将这些日期存储为unix时间戳,方法是使用PHP的strtotime进行转换:

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

我收集的所有推文都谈到了纽约证券交易所的股票。纽约证券交易所(显然在纽约)位于美国东部时间 - 格林威治标准时间 - 5小时(或:18.000秒)。因此,在2011年2月18日星期二21:08:38发表于UTC Fri的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好处,因为这让我非常困惑(可能是不必要的,但这是我第一次使用时间戳和时区)

1 个答案:

答案 0 :(得分:0)

在读取数据后,更新twitter_timestamp字段,如

update mydata set twitter_timestamp = twitter_timestamp - 5 * 3600;