2012-08-27 186 views
0

如上所述here後返回事件數據,該時區遷移後,這些更改將應用​​於FQL失敗時區遷移

「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? 我不介意爲一個或兩個事件設置一個空值,但我希望我的數據儘可能準確。

感謝

+0

您的懷疑似乎是正確的 - 如果我在未選擇end_time列的情況下測試您的查詢,我將獲取數據,但不是當我保持它。我會說這是明確值得一個錯誤報告... https://developers.facebook.com/bugs – CBroe

回答

0

這似乎是把一個簡單

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 

不過,我現在還越來越少事件比以前。爲了達到相同的結果,我將不得不編寫第二個查詢來獲取沒有結束時間的事件