Выберите что-либо (события, день рождения, сообщение и т.д.) В диапазоне дат

#facebook #facebook-fql

#Facebook #facebook-fql

Вопрос:

Я пытаюсь что-то выяснить с помощью fql и я сделал некоторый запрос select, который показывает друзей, у которых день рождения в выбранный день.

Я не могу понять, как задать некоторый временной диапазон в запросе.

 $fql_n = "SELECT uid, name, birthday_date FROM user 
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 
AND strlen(birthday_date) != 0 ORDER BY birthday_date"; 
  

Дата Facebook указана в формате mm/dd/yyyy .

Ответ №1:

Оба birthday_date и birthday являются строками. На самом деле нет способа выполнить поиск по диапазону.

Вы могли бы указать список дат и использовать IN

 WHERE birthday_date IN ('05/30/1990','05/29/1990') 
  

Комментарии:

1. Это не работает. ничего не возвращает, когда я добавляю это утверждение. конечно, я изменил дату на больший диапазон, поэтому дело не в том, что ни у кого из моих друзей нет дня рождения между ними 😉 Я буду благодарен за другое решение. приветствия

2. Это не диапазон. Как я уже сказал, вы не можете использовать диапазон. У вас должны быть конкретные даты в списке.

Ответ №2:

вы можете указать день, в который хотите отметить день рождения

 SELECT name, birthday_date 
FROM user 
WHERE uid IN (
    SELECT uid2 
    FROM friend 
    WHERE uid1=me()
)
AND (strpos(lower(birthday_date),"08/01") >=0 OR strpos(lower(birthday_date),"08/02") >=0)
  

// это приведет к выборке дня рождения за 1 и 2 августа, используйте birthday_date, чтобы у вас был формат ММ / ДД / ГГГГ.