我仍然按照升序以 1月到12月的形式获取 Facebook好友列表,见下图:
但现在我想以即将到来的生日的形式显示Facebook好友列表赞:
顶部的次数
我使用以下查询来获取朋友列表:
Log.d(LOG_TAG, "requestFriends(" + ")");
Date date = new Date();
String current_date = null;
SimpleDateFormat dateFormatter = new SimpleDateFormat("MM-dd-yyyy");
current_date = dateFormatter.format(date);
System.out.println("Current Date is:- " + current_date);
String query = "select name, birthday, uid, pic_square from user where uid in (select uid2 from friend where uid1=me()) and birthday_date>= "
+ current_date + " order by birthday_date";
请告诉我用什么查询来获取即将到来的B'days表单中的列表
答案 0 :(得分:1)
此查询将获取登录用户帐户中所有朋友的列表:
SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) ORDER BY birthday_date ASC
这样做的缺陷是,您需要检查用户是否已在其Facebook帐户中输入了他/她的生日。
更好的查询(至少我认为更好):
SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) AND birthday_date >= '02/01' AND birthday_date <= '07/01' ORDER BY birthday_date ASC
这个只会获得在Facebook帐户中填写生日的用户列表。使用ORDER BY birthday_date
时,他们将始终在即将到来的生日顶部一直到结果集中的最后一个生日。
这个的缺陷是,并随意测试它,我从来没有使用第二个查询得到了整整多年的生日。在我的应用程序中,我一次调用6个月的数据。这一直是精确而且非常多,砰的一声。
我怀疑,考虑到您需要在列表顶部显示即将到来的生日,第二个查询将适合您的目的。为确保您始终获得当前日期和月份以获得精确结果,请使用此示例(以及简单的Google搜索或搜索结果搜索将为您提供更多信息)以获取当前日期和月份:
http://www.asbhtechsolutions.com/android-tutorials/android-get-current-date-and-time
然后,连接String
并将该实例作为查询传递。
注意:查询中使用的月份和日期必须始终两位数。