【问题标题】:FQL fails to return event data after timezone migration时区迁移后 FQL 无法返回事件数据
【发布时间】:2012-08-27 10:11:12
【问题描述】:

here 所述,在时区迁移后,这些更改适用

在“events_timezone”迁移之前:

  • start_time 和 end_time 字段是太平洋时间的 UNIX 时间戳。
  • 示例:“1341453600”表示 2012 年 7 月 4 日晚上 7 点。
  • end_time 始终被定义。

“events_timezone”迁移后:

  • start_time 和 end_time 字段是 ISO-8601 格式的字符串。
  • 如果未指定,则 end_time 可能为空。

我使用以下查询来查询用户社交网络中发生的每个事件的结束时间。

SELECT eid, end_time FROM event WHERE eid IN (SELECT eid FROM event_member WHERE start_time > '2012-08-27' AND uid IN (SELECT uid FROM user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me()))) LIMIT 5000.

此查询在时区迁移之前有效,但在启用时区迁移的情况下无法返回任何数据。我高度怀疑这是因为至少有一个事件的 end_time 为 null。

我该如何克服这个问题,并获得大多数活动的 end_dates 呢? 我不介意为一两个事件设置一个空值,但我希望我的数据尽可能准确。

谢谢

【问题讨论】:

  • 您的怀疑似乎是正确的——如果我在不选择 end_time 列的情况下测试您的查询,我会获取数据,但当我保留数据时不会。我会说这绝对值得一个错误报告……developers.facebook.com/bugs

标签: timezone facebook-fql


【解决方案1】:

好像加个简单的

AND end_time != ''

成功了

现在是代码

SELECT eid, end_time FROM event WHERE eid IN (SELECT eid FROM event_member WHERE start_time > '2012-08-27' AND uid IN (SELECT uid FROM user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me()))) AND end_time != '' LIMIT 5000

但是,我现在收到的事件仍然比以前少。为了获得相同的结果,我将不得不编写第二个查询来获取没有结束时间的事件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2013-05-31
    • 1970-01-01
    • 2017-07-07
    • 2018-09-14
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多