Кирилл Зудов,в общем наслаждайтесь:
В общем там в коде работает это примерно так:
[CODE]$dbUsers = CUser::getList(
$by = 'CURRENT_BIRTHDAY', $order = 'ASC',
$arFilter,
array(
'SELECT' => $arRequiredFields,
'NAV_PARAMS' => $arNavParams,
'FIELDS' => $arRequiredFields
)
);[/CODE]
А в самом getList по параметру $by идет следующее:
[CODE]if($field == "CURRENT_BIRTHDAY")
{
$cur_year = intval(date('Y'));
$arSqlOrder[$field] = "IF(ISNULL(U.PERSONAL_BIRTHDAY), '9999-99-99', IF (
DATE_FORMAT(U.PERSONAL_BIRTHDAY, '".$cur_year."-%m-%d') < DATE_FORMAT(DATE_ADD(".$DB->CurrentTimeFunction().", INTERVAL ".CTimeZone::GetOffset()." SECOND), '%Y-%m-%d'),
DATE_FORMAT(U.PERSONAL_BIRTHDAY, '".($cur_year + 1)."-%m-%d'),
DATE_FORMAT(U.PERSONAL_BIRTHDAY, '".$cur_year."-%m-%d')
)) ".$dir;
}[/CODE]