Вы, кажется, хотите не обращать внимания на год. Если это так, то я бы порекомендовал:
TO_CHAR(datecol, 'MM/DD') BETWEEN '05/01' AND '07/08'
Чтобы BETWEEN
работал в этом случае, вам нужен формат в порядке MM-DD.
Если вы хотите это для определенного года, то используйте прямые сравнения дат:
datecol >= DATE '2018-05-01' AND
datecol < DATE '2018-07-09' -- note this is one day later
В датах Oracle есть компонент времени, поэтому вам следует соблюдать осторожность при проведении сравнений.
Ответ
function mb_strrev($text, $encoding = null)
{
$funcParams = array($text);
if ($encoding !== null)
$funcParams[] = $encoding;
$length = call_user_func_array('mb_strlen', $funcParams);
$output = '';
$funcParams = array($text, $length, 1);
if ($encoding !== null)
$funcParams[] = $encoding;
while ($funcParams[1]--) {
$output .= call_user_func_array('mb_substr', $funcParams);
}
return $output;
}
Вот еще способ. Кажется, это работает без указания выходной кодировки (проверено с парой разных mb_internal_encoding
s):
function mb_strrev($text)
{
return join('', array_reverse(
preg_split('~~u', $text, -1, PREG_SPLIT_NO_EMPTY)
));
}