Формат даты Oracle: varchar до даты, затем char и затем дата

Я интерпретирую этот вопрос так: «Я хочу построить таблицу радуги, повторяя все строки, которые обладают следующими качествами: строка имеет длину 12, содержит только символы 0-9 и AF, и она никогда не имеет тот же символ появляется три раза подряд. "

def iter_all_strings_without_triplicates(size, last_two_digits = (None, None)):
    a,b = last_two_digits
    if size == 0:
        yield ""
    else:
        for c in "0123456789ABCDEF":
            if a == b == c:
                continue
            else:
                for rest in iter_all_strings_without_triplicates(size-1, (b,c)):
                    yield c + rest

for s in iter_all_strings_without_triplicates(12):
    print(s)

Результат:

001001001001
001001001002
001001001003
001001001004
001001001005
001001001006
001001001007
001001001008
001001001009
00100100100A
00100100100B
00100100100C
00100100100D
00100100100E
00100100100F
001001001010
001001001011
...

Обратите внимание, что будет выведено значение в несколько сотен терабайт, поэтому вы можете 't экономя много места по сравнению с тем, чтобы просто сохранить каждую строку, три раза или нет.

1
задан dgcharitha 19 January 2019 в 14:37
поделиться

2 ответа

В Oracle значения DATE не имеют определенного формата, например DD-MON-YYYY ИЛИ DD/MM/RR и т. Д. Все поля DATE содержат подполя для столетия, года, месяца, дня, часов, минут и секунд, Это означает, что все поля DATE в Oracle действительно являются значениями меток времени с точностью до одной секунды. По умолчанию Oracle преобразует DATE в символьную строку, используя формат DD-MON-YY , но это просто формат по умолчанию - это не означает, что дата сохраняется в формате DD-MON-RR.

0
ответ дан Bob Jarvis 19 January 2019 в 14:37
поделиться

Вы не можете загрузить свои строковые данные в строковый столбец. Таким образом, самое внешнее преобразование to_date не имеет смысла, но если вы хотите отобразить в нужном формате, вам нужно такое преобразование ниже:

select  to_char(
                to_date('20-OCT-2019','DD-MON-YYYY','NLS_DATE_LANGUAGE=ENGLISH')
                   ,'MM/DD/YYYY')
    as "Appearance in New Format"                   
  from dual;

    Appearance in New Format
            10/20/2019 

, не забывая использовать опцию NLS_DATE_LANGUAGE для вашего другого местного языка настройки отличаются от английского (в данном случае OCT: October is an abbreviation in English Language)

PS на самом деле вы не сохраняете столбец даты в определенном формате, как указал @ Боб Джарвис, но они отображаются в зависимости от ваших настроек nls_date_format, таких как настройки в этом примере:

[115 ]

0
ответ дан Barbaros Özhan 19 January 2019 в 14:37
поделиться
Другие вопросы по тегам:

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