Как инвертировать строку Unicode

Вы, кажется, хотите не обращать внимания на год. Если это так, то я бы порекомендовал:

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 есть компонент времени, поэтому вам следует соблюдать осторожность при проведении сравнений.

13
задан 2 revs 23 May 2017 в 11:45
поделиться

2 ответа

Ответ

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;
}
4
ответ дан 1 December 2019 в 21:38
поделиться

Вот еще способ. Кажется, это работает без указания выходной кодировки (проверено с парой разных mb_internal_encoding s):

function mb_strrev($text)
{
    return join('', array_reverse(
        preg_split('~~u', $text, -1, PREG_SPLIT_NO_EMPTY)
    ));
}
6
ответ дан 1 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: