0

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 は 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.

このクエリは、タイムゾーンの移行前は機能していましたが、タイムゾーンの移行が有効になっているデータは返されません。これは、少なくとも 1 つのイベントの end_time が null であるためだと思われます。

どうすればこの問題を解決し、ほとんどのイベントの end_dates を取得できますか? 1 つまたは 2 つのイベントに NULL 値があってもかまいませんが、データをできるだけ正確にしたいと考えています。

ありがとう

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

ただし、以前よりもイベントが少なくなりました。同じ結果を得るには、終了時刻なしでイベントを取得する 2 つ目のクエリを作成する必要があります。

于 2012-08-27T10:25:04.050 に答える