此查询将获取登录用户帐户中所有好友的列表:
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 搜索或 SO 搜索将为您提供更多信息)来获取当前日期和月份:
http://www.asbhtechsolutions.com/android-tutorials/android-get-current-date-and-time http://www.asbhtechsolutions.com/android-tutorials/android-get-current-date-and-time
然后,连接一个String
并将该实例作为查询传递。
NOTE:查询中使用的月份和日期需要是任何时候都是两位数.