如上所述,时区迁移后,这些更改将应用
在"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为null
我如何克服这个问题,并获得大多数事件的结束日期?我不介意为一两个事件设置null值,但我希望我的数据尽可能准确。
感谢
似乎添加了一个简单的
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
然而,我现在收到的事件仍然比以前少。为了获得相同的结果,我将不得不编写第二个查询来获得没有结束时间的事件