0

如此处所述,在时区迁移之后,这些更改适用

在“events_timezone”迁移之前:

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

在“events_timezone”迁移之后:

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

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

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 为空。

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

谢谢

4

1 回答 1

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

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

于 2012-08-27T10:25:04.050 回答